2

[tag]blabla[/tag]

私はそれを次のように置き換えたい:

<tag>blabla</tag>

[tag]ただし、 と の間に「leavemealone」というフレーズがある場合は、そのままにしておき[/tag]ます。

So [tag]leavemealone[/tag]or [tag]aaa leavemealone[/tag]or [tag]aaa leavemealone aaa[/tag]etc. 変更しないでください。

コード:

preg_replace("#\[tag\](what_should_be_here)\[\/tag\]#", "<tag>$1</tag>", $text);
4

1 に答える 1

4

次のパターンを使用します。

$match = "#\[(\w+)\](?!.*leavemealone.*)(.*?)\[/(\w+)\]#";
$replace = "<$1>$2</$3>";

そして、それはそれを行う必要があります。タグを一致させたくないが、「tag」タグだけを一致させたい場合は、次のように修正できます。

$match = "#\[tag\](?!.*leavemealone.*)(.*?)\[/tag\]#";
$replace = "<tag>$1</tag>";
于 2013-01-01T23:03:36.720 に答える