我在以下布局中有一些代码,我使用 textcrawler 进行查找和替换
<a>
Name=LineA
epsium
ask
answer
line=10
color=red
</a>
<a>
Name=LineB
Color=Blue
</a>
...
现在的问题是我需要使用什么正则表达式来删除第二个代码块<a> and </a>
我在以下布局中有一些代码,我使用 textcrawler 进行查找和替换
<a>
Name=LineA
epsium
ask
answer
line=10
color=red
</a>
<a>
Name=LineB
Color=Blue
</a>
...
现在的问题是我需要使用什么正则表达式来删除第二个代码块<a> and </a>
<a>(\s*?Name\=LineB[\S\s]*?)</a>
它捕获所有文本,包括以<a></a>
text 开头的标签Name=LineB
。
在 Perl 中,我会这样做:
$str =~ s~^(.*?<a>.*?</a>.*?)<a>.*?</a>(.*)$~${1}New text$2~s;
第一组包含第二个块之前的所有内容,第二组包含之后的<a></a>
所有内容。
在 php 中:
$str = preg_replace('~^(.*?<a>.*?</a>.*?)<a>.*?</a>(.*)$~', "${1}New text$2", $str);
preg_replace("/<body>([\s\S]*.*)<\/body>/",$replace,$origional);
这将替换正文标签之间的全部内容。