日記
実体参照になっているかわからん文字列を実体参照にするEdit

教えて、正規表現のえらい人! いや、正規表現の普通の人でも答えられるのかもしれないけど。

えっと、cgiからhtmlとして出力したい文字列があるとするじゃないですか。で、その文字列は&とか>とか<とかが実体参照で表現されているかどうかがわからないわけですよ。で、ちゃんと実体参照で表現されている場合はそのまま、実体参照で表現されていない場合は実体参照に置換したいわけですね。その条件判断は、正規表現を使ってどう書けばいいんでしょうね? 一部を日本語で書けば、

  • “&”で始まる文字列のうち「/&(amp|lt|gt|#[0-9A-Fa-f]+);/」という表現にマッチしないものがある
  • 「/<|>|"/」にマッチする文字列がある

の二つの条件のどちらかを満たすものがあった場合は実体参照置換をかける、って感じだと思うんだけど、それをうまく一つの条件式に書けないんだよなー。考えれば考えるほど、正規表現ってよくわからない。

Published At2002-01-30 00:00Updated At2002-01-30 00:00