あるサイトのHTML文章全文から、タグに含まれていない文字列の中の特定の文字を検出して、置き換えたいのですが、なかなかうまくいかずに苦労しております。
<タグ1>ここにある文字列の中の一部<タグ2>ここにも文字列があったりします。</タグ2>こんなところにも文字列はあります</タグ1>
上記の場合、たとえば「文字列」という文字とマッチさせて入れ替えたいのです。
「文字列」は例えばmojiという変数にて指定し、これをhemojiという変数にて置き換える作業を全文に施したいのです。
どなたか、教えてください。正規表現、毎回苦闘しております。
こういう場合、無理に正規表現一発と考えず、「[<>]」でsplitしてforかreduceで復元しながら内部フラグでタグ内外判断したらどうでしょうか。
ありがとうございます。
2014/04/13 12:32:03こういう書き方があるんですね。
正規表現をモノにしたら、いろいろ便利なんですが、難しいです。
=の使い方を知りませんでいた。
ありがとうございます。勉強になりました。
追伸;
2014/04/13 13:23:59この場合、全文から、まず改行を削除してしまい、そのあとにこのマッチを行えば例外処理も必要なさそうです。
改行を放置すると、万が一、class名などにマッチさせる文字列が使われていて、<>の途中で改行を行うような、変なHTMLだった場合、思わぬマッチングがされてしまうようですので。
これで、めどが立ちました。
ありがとうございました。先読みの x(?=)という書式も覚えました。