正则表达式更改标签之间的文本

时间:2011-09-30 15:10:34

标签: regex replace html-content-extraction

我在以下布局中有一些代码,我使用textcrawler来执行查找和替换

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

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

...

现在的问题是我需要使用的正则表达式,以便删除<a> and </a>之间的第二个代码块

3 个答案:

答案 0 :(得分:1)

<a>(\s*?Name\=LineB[\S\s]*?)</a>

它捕获以文本<a></a>开头的Name=LineB标记之间的所有文字。

答案 1 :(得分:1)

在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);

答案 2 :(得分:0)

preg_replace("/<body>([\s\S]*.*)<\/body>/",$replace,$origional);

这将取代身体标签之间的整个内容。