PHP / Regex - 抓住{和}之间的所有内容?

时间:2011-12-18 21:11:16

标签: php regex

我有一些像这样的文字字符串

  

{你好|喜} {那里|你}

我想计算{..anything ..}的实例,所以在上面的例子中,我想要返回:

  

您好|喜
  有|你

preg_match_all()

创建的匹配数组中的

现在我的代码看起来像:

preg_match_all('/{(.*?)}/', $text,$text_pieces);

$ text_pieces包含:

Array ( [0] => Array ( [0] => {hello|hi} [1] => {there|you} ) [1] => Array ( [0] => hello|hi [1] => there|you ) )

我所需要的只是:

[0] => hello|hi [1] => there|you 

1 个答案:

答案 0 :(得分:2)

preg_match_all不能省略全文匹配,只能省略子模式匹配,因此唯一的解决方案是在函数调用后将$text_pieces设置为$text_pieces[1]

if(preg_match_all('/{(.*?)}/', $text,$text_pieces))
{
    $text_pieces = $text_pieces[1];
}