次のレイアウトのコードがあります。textcrawlerを使用して検索と置換を行います
<a>
Name=LineA
epsium
ask
answer
line=10
color=red
</a>
<a>
Name=LineB
Color=Blue
</a>
..。
ここで問題となるのは、2番目のコードブロックを削除するために使用する必要のある正規表現です。<a> and </a>
次のレイアウトのコードがあります。textcrawlerを使用して検索と置換を行います
<a>
Name=LineA
epsium
ask
answer
line=10
color=red
</a>
<a>
Name=LineB
Color=Blue
</a>
..。
ここで問題となるのは、2番目のコードブロックを削除するために使用する必要のある正規表現です。<a> and </a>
Perlでは、次のことを行います。
$str =~ s~^(.*?<a>.*?</a>.*?)<a>.*?</a>(.*)$~${1}New text$2~s;
最初のグループには2番目のブロックの前のすべてが含まれ<a></a>
、2番目のグループには後のすべてが含まれます。
PHPの場合:
$str = preg_replace('~^(.*?<a>.*?</a>.*?)<a>.*?</a>(.*)$~', "${1}New text$2", $str);
<a>(\s*?Name\=LineB[\S\s]*?)</a>
<a></a>
テキストで始まるタグの間およびタグを含むすべてのテキストをキャプチャしますName=LineB
。
preg_replace("/<body>([\s\S]*.*)<\/body>/",$replace,$origional);
これにより、body タグ間のコンテンツ全体が置き換えられます。