0

次のレイアウトのコードがあります。textcrawlerを使用して検索と置換を行います

<a>
Name=LineA
epsium
ask
answer
line=10
color=red
</a>

<a>
Name=LineB
Color=Blue
</a>

..。

ここで問題となるのは、2番目のコードブロックを削除するために使用する必要のある正規表現です。<a> and </a>

4

3 に答える 3

1

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);
于 2011-09-30T15:41:08.370 に答える
1
<a>(\s*?Name\=LineB[\S\s]*?)</a>

<a></a>テキストで始まるタグの間およびタグを含むすべてのテキストをキャプチャしますName=LineB

于 2011-09-30T15:30:20.710 に答える
0
preg_replace("/<body>([\s\S]*.*)<\/body>/",$replace,$origional);

これにより、body タグ間のコンテンツ全体が置き換えられます。

于 2013-11-18T12:58:47.220 に答える