有条件的preg_match_all

时间:2012-06-29 19:56:02

标签: php regex preg-match-all

我有格式数据:
   Randomtext1(random2,random4)Randomtext2(ran dom)Randomtext3 Randomtext4(random5,random7,random8)

所以我想知道Randomtext-part和带括号的文本,如果它与preg_match_all一起,但我不知道如何完成它。括号中的内容与Randomtext-part一起使用,一些Randomtext-parts包含它,其中一些不适用。

这是我到目前为止所做的,它在大多数情况下都适用,但如果文本没有任何括号,那么它将整个事物与一个匹配。
preg_match_all("/([a-zA-Z]+)\s+(?([a-zA-Z, ]*))?/",$text,$matches);

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

preg_match_all("/\b\w+\b(?:\s*\(.*?\)|)/", $text, $matches);