• ベストアンサー

パターンマッチ変換について

& → & ; → &#x3b; の2つの実体参照エスケープを $value =~ s/&/&/g; $value =~ s/;/&#x3b;/g; で行うと、「&」の変換で出来上がった最後の「;」が次の「;」の変換の対象になって失敗してしまいます。 2つのパターンを同時に変換する方法をご存知でしたら、是非教えてください。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.5

#1 でちょっと間違えました. やりたいことはわかるかと思いますが.

noname#37358
質問者

お礼

修正が上手くいったようなのでお礼をさせてもらいます。 なるほど、ハッシュを使って場合分けすれば良いんですね。 勉強になりました。

noname#37358
質問者

補足

ご回答ありがとうございます。 既に気づいているとは思いますが、質問文にミスがあったので訂正します。 (修正も削除もできないようなので、回答されるまで、何もできないんですよね…。) & → & ; → &#x3b; のエスケープを $value =~ s/&/&/g; $value =~ s/;/&#x3b;/g; でやると失敗。 という事です。 (また、ミスってなければ良いのですが…。)

その他の回答 (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 = ( '&' => '&&#x26', ';' => '&&#x3b' ); $value =~ s/([&;])/$escape{$1}/eg;

関連するQ&A