0

二重引用符内の何かに一致するこの RegExp を取得することができました。

"([^"]|\\")*"

一致するもの

私としては、確かなことは何もわかっていませんが、星を見ると夢を見ます。」- ヴィンセント・ヴァン・ゴッホ

私がする必要があるのは、PHP を使用して HTML を一致に適用することです。したがって、上記の文字列は次のようになります...

<i class="quote">"For my part I know nothing with any certainty, but the sight of the stars makes me dream."</i> - Vincent Van Gogh

preg_replace を試してみましたが、必要な方法で動作させることができません。

ありがとう

4

3 に答える 3

0

どうぞ。

echo preg_replace('#"([^"]++)*"#', '<i class="quote">"\1"</i>', 'foo bar "fuz" "buz"')

あなたが探していた欠落部分は後方参照 \1 だったと思います。パターンの最初の括弧にあるものを表します。複数の括弧がある場合は、\2、\3 などでそれらを表します。

于 2013-03-23T12:45:21.853 に答える
0

どうですか:

 $str = preg_replace('/("([^"]|\\")*")/', "<i class='quote'>$1</i>", $str);
于 2013-03-23T12:40:38.567 に答える
0

preg_match を見て、正規表現との一致を返し、それを配置するか、連結を使用します。

http://www.php.net/manual/en/function.preg-match.php

preg_replace を使用することもできますが、意図的にはより複雑に思えます。

于 2013-03-23T12:49:59.650 に答える