- ベストアンサー
パターンマッチ変換について
& → & ; → &#x3b; の2つの実体参照エスケープを $value =~ s/&/&/g; $value =~ s/;/&#x3b;/g; で行うと、「&」の変換で出来上がった最後の「;」が次の「;」の変換の対象になって失敗してしまいます。 2つのパターンを同時に変換する方法をご存知でしたら、是非教えてください。 宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#1 でちょっと間違えました. やりたいことはわかるかと思いますが.
その他の回答 (4)
- pick52
- ベストアンサー率35% (166/466)
回答No.4
↓すみません、操作ミスと焦ってしまい変なことになって しまいました。 下の回答は無視してください。
- pick52
- ベストアンサー率35% (166/466)
回答No.3
少し分かりませんが、よくある実体参照のエスケープは $value =~ s/&/&/g; ですね。
- pick52
- ベストアンサー率35% (166/466)
回答No.2
少し分かりませんが、よくある実体参照のエスケープは $value =~ s/&/&/g; ですね。
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
%escape = ( '&' => '&&', ';' => '&;' ); $value =~ s/([&;])/$escape{$1}/eg;
お礼
修正が上手くいったようなのでお礼をさせてもらいます。 なるほど、ハッシュを使って場合分けすれば良いんですね。 勉強になりました。
補足
ご回答ありがとうございます。 既に気づいているとは思いますが、質問文にミスがあったので訂正します。 (修正も削除もできないようなので、回答されるまで、何もできないんですよね…。) & → & ; → ; のエスケープを $value =~ s/&/&/g; $value =~ s/;/;/g; でやると失敗。 という事です。 (また、ミスってなければ良いのですが…。)