正则表达式 - preg_replace - 替换段落中的特定内容

时间:2013-04-19 17:58:52

标签: php regex

我正在尝试实现仅替换<p>代码

之间的特定字词的功能

例如:

<p>this is word i need to replace</p>

在这种情况下,“word”将替换为其他单词(但仅限于<p>个标签内)

目前正在使用:

preg_replace("/\b$keyword\b/", $replaceWord, $content, 2);

$content - contains all html
$keyword - word wich need to be replaced in that content
$replaceWord - word wich we want to use instead $keyword

但是上面的这个逻辑将取代不在段落内的关键字。 如何更新这个正则表达式,所以它只替换段落中的单词?

注意:请注意我无法使用Simple HTML DOM Parser

1 个答案:

答案 0 :(得分:-1)

我不熟悉w / php,但这里是python。我想尝试和帮助,因为你有一段时间没有回答。你可以看到我正在匹配和存储这个单词周围的东西,并将其添加到我的替换中,称为“新单词”。并且它确实忽略了&lt;中的“单词”一词。 h1&gt;标签

>>> import re
>>> a = "<p>this is word i need to replace</p>"
>>> a += "\n<h1>blah blah crud word</h1>"
>>> re.sub("(<p>.*?)word(.*?</p>)","\g<1>new word\g<2>",a)
'<p>this is new word i need to replace</p>\n<h1>blah blah crud word</h1>'