0

文字列INCLUDEネストされた引用符からすべての引用符を削除したい。

ネストされたqoutesでは機能しません。

preg_replace("/\[quote(.*?)\](.*?)\[\/quote\]/i","", $text);

これは次のような場合に機能します。

[quote=admin]Welcome to RegExr 0.3b, an intuitive tool for learning, writing, and testing Regular Expressions. Key features include: [/quote]

ただし、次の場合は対象外です。

[quote=admin]Welcome to RegExr 0.3b, [quote] an intuitive tool for learning, [/quote] writing, and testing Regular Expressions. Key features include: [/quote]

すべてのqouteブロックを削除したい

4

3 に答える 3

1

あなたの間違いは単にあなたの表現の疑問符だと思います。

試すpreg_replace("/\[quote(.*?)\](.*)\[\/quote\]/i","", $text);

あなたの例があなたの編集に投稿された場​​合:

$text = '[quote=admin]Welcome to RegExr 0.3b, [quote] an intuitive tool for learning, [/quote] writing, and testing Regular Expressions. Key features include: [/quote]';
$cleared = preg_replace("/\[quote(.*?)\](.*)\[\/quote\]/i","", $text);

var_dump($cleared);
// -> string(0) ""
于 2012-09-15T09:24:07.513 に答える
1
/\[quote.*?\](.*?)\[\/quote\]((\s)*(\[\/quote])*)*/gis

動作していますが、完全ではありません。

[/quote]の後に次の[/quote]とnextと...があり、他には何もないことに注意してください。このコードは、引用符で囲まれているが、次のような複数の引用符ではないすべての引用符を削除します。

[quote] ... [quote]...[/quote] ... [quote]...[/quote] ... [/quote]
于 2013-08-20T18:09:42.780 に答える
-1

どうしてstr_replace('"', '', $string);

編集:これは間違った答えです。質問を読み間違えました。

于 2012-09-15T09:18:37.290 に答える