正则表达式(preg_match_all)

时间:2011-09-23 12:20:03

标签: php regex preg-replace

我可以在PHP的{string}函数中使用此正则表达式/{(.*)}/s来匹配此字符串preg_replace_callback

但如果该字符串包含在{tag}{/tag}之类的标签中,那么我不会匹配该字符串,

例如:
我不想在{string}中匹配{tag} Anything Here {string} Anything Here {/tag}

非常欢迎任何建议(或可能的例子)。

1 个答案:

答案 0 :(得分:2)

你可以玩:

preg_match_all("/(\{string\})|(\{tag\}.+\{.+tag\})/", $str, $m);

echo "<pre>";
print_r($m);
echo "</pre>";

正如您将看到的,该表达式将返回带有三个数组元素的m。第二个数组元素包含所有不在{tag}中的{string} .... {string} .... {/ tag}