正则表达式改变文本
我在下面的布局一些代码,即时通讯使用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>
它捕获与所述TE开始之间并包括<a></a>
标签的所有文本代码的第二块xt Name=LineB
。
我认为你会走向正确的方向,除非我不能匹配/硬编码字符的数量,我想在标签之间捕获名字LineB – EvenPrime
然后@sln是对的:'(\ s * Name \ = LineB。* ?)'应该匹配第二块。 – Utensil
试过,仍然无法获得块:( – EvenPrime
在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);
这将替代body标签之间的全部内容。
请不要将[解决]添加到您的答案,这是为了让别人来决定... – NigelK
你能告诉我们你试过的东西吗? –
我试过(。*),但它选择了整个东西 – EvenPrime
为什么第二块代码比第一块更重要? '。*?'得到第一块。而且你不需要括号。 – sln