1

我正在尝试实现仅替换<p>标签之间的特定单词的功能

例如:

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

在这种情况下,“单词”将被替换为其他单词(但仅限于<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

4

1 回答 1

-1

我不熟悉 php,但这里是 python。我想我会尽力帮助你,因为你有一段时间没有得到答复。您可以看到我正在匹配并存储单词周围的内容,然后将其添加回我的替换项中,称为“新单词”。而且它确实忽略了 < h1 > 标签内的单词“word”。

>>> 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>'
于 2013-04-19T18:09:20.173 回答