正则表达式捕获多次相同的组

时间:2018-06-06 16:47:02

标签: php regex

我在一些简单的事情上有几个小时的问题,但我找不到正确的解决方案。我有这样的句子:

  

"约翰自{5 | 6}年以来在{巴黎|纽约}教{法语|英语}"。

我必须在大括号之间提取每个部分才能得到它:

  
      
  • 法语|英语
  •   
  • 巴黎|纽约
  •   
  • 5 | 6
  •   

我试过这个正则表达式:

    (\{.*\|.*\})

我不知道为什么它很糟糕,因为我试图抓住我想的好弦。 我尝试了许多其他正则表达式,但没有成功。

如果有人可以帮助我,我感谢他: - )

1 个答案:

答案 0 :(得分:0)

如果您希望使用php执行此操作,请尝试以下代码行。

$content ="John teach {french|english} in {Paris|New York} since {5|6} years";
preg_match_all('/{(.*?)}/', $content, $matches);
foreach($matches[1] as $result){
    echo $result;
    echo "</br>";
}

希望这有帮助!