2011-09-23 56 views
1

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

但我并不怎么该字符串,如果该字符串包含标签之间像{tag}{/tag}匹配,

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

任何建议(或者例子)都是非常受欢迎的。

+3

您有多少可能的“tag”值?那么这可能是一个简单的任务。 – DhruvPathak

+0

您的标签可能是嵌套的吗? –

+0

@DhruvPathak:我认为3个可能的值。 – Pawan

回答

2

您可以用玩:

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

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

正如你将看到,该表达式将返回A M有三个数组元素。第二个数组元素包含所有未加入{tag}的{string} .... {string} .... {/ tag}

+0

这对'preg_replace_callback'有效吗?你可以添加另一个显示该功能的代码示例吗? – hakre

+0

因为我从来没有使用过这个函数“preg_replace_callback”,所以我不能给你任何好的消化。但如果你喜欢,你可以描述你喜欢的结果,我会搜索找到你的最佳解决方案。 –

+0

我只是问,因为在OP中它被要求提供'preg_replace_callback'。我将编辑标题,以免问题引起误解。 – hakre

相关问题