仅在特定标签(正则表达式)中替换单词?

时间:2014-02-26 01:45:26

标签: php html regex tags preg-replace

以示例:

我想在HTML字符串中将iOS个字词替换为iOS 7,但仅在正文中替换为<p>标记(不包括任何其他情况)。

我只想替换它:

<p>Say hello to iOS that is contained in the body text</p>
<p>Say hello to iOS 7 that is contained in the body text</p>

但不想替换这些:

<p>Say hello to <a href="#" alt="iOS 7 in alt text">this link.</a>
<p>Say hello to <img src="iOS 7.jpg" /> this image.
// And so on...

是否可以使用正则表达式?

1 个答案:

答案 0 :(得分:1)

当然,你可以使用一个使用负面lookbehind的正则表达式。

(?&lt;!“)iOs 7

基本上说匹配除了那些带有“previous ...

的那些

...但是你真的应该考虑使用某种类型的html解析器,例如BeautifulSoup,这使得所有这些都变得微不足道。

见这里:

RegEx match open tags except XHTML self-contained tags