2012-06-29 3 views
0

У меня есть данные в формате:
Randomtext1 (Random2, random4) Randomtext2 (RAN РОМ) Randomtext3 Randomtext4 (random5, random7, random8)Условный preg_match_all

Так что я хотел бы признать как Randomtext-часть и текст в скобках, если он есть с preg_match_all, но я не уверен, как это сделать. Материал в скобках идет вместе со частью Randomtext-part, а некоторые части Randomtext - имеют его, а некоторые из них - нет.

Это то, что у меня есть до сих пор, и оно работает в большинстве случаев, но если текст не содержит никаких скобок, он соответствует всему этому.
preg_match_all("/([a-zA-Z]+)\s+(?([a-zA-Z, ]*))?/",$text,$matches);

Любые идеи?

ответ

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

Спасибо! С небольшими изменениями я получил шаблон, чтобы получить только ту информацию, которая мне нужна! – Kemu79

+0

@ Kemu79 - Какое изменение вам нужно сделать? –

+0

Я сменил шаблон на /\b(\w+)\b(?:\s*\((.*?)\)|)/, чтобы сохранить тексты по мере необходимости. – Kemu79

Смежные вопросы