0

次の形式のデータがあります:
Randomtext1 (random2,random4) Randomtext2 (random) Randomtext3 Randomtext4 (random5,random7,random8)

したがって、ランダムテキスト部分と角かっこで囲まれたテキストの両方を認識したいのですが、preg_match_all がある場合は、それを行う方法がわかりません。括弧内のものは Randomtext-part と一緒になり、Randomtext-part の一部にはそれがあり、一部にはありません。

これは私がこれまでに持っているものであり、ほとんどの場合に機能しますが、テキストに括弧がない場合は、全体が 1 つに一致します。
preg_match_all("/([a-zA-Z]+)\s+(?([a-zA-Z, ]*))?/",$text,$matches);

何か案は?

4

1 に答える 1

1
preg_match_all("/\b\w+\b(?:\s*\(.*?\)|)/", $text, $matches);
于 2012-06-29T20:00:55.460 に答える