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 に答える