2013-08-26 2 views
0

Я пытаюсь извлечь две строки из строки. Формат строки выглядит следующим образом:Извлечение двух строк из строки с использованием preg_match

$text = 'First string here(second here)'; 

Секунды секунд всегда будут в конце внутри кавычек. Я пытаюсь извлечь их эффективно. Я пробовал использовать это: preg_match('#\((.*?)\)#', $text, $match) и preg_match('/\(([^\)]+)\)/', $text, $match)

Вышеприведенные выражения работают нормально, но я пытаюсь сделать это за один раз, а не отдельно. Я предполагаю, что это мой OCD ногами в:/

ответ

0

Вы можете использовать группы захвата:

$text = 'First string here(second here)'; 
if (preg_match('#^([^\(]+)\(([^\)]+)\)$#', $text, $match)) { 
    print "$match[1]\n"; 
    print "$match[2]"; 
} 

See demo on ideone.

0
$out= preg_split('/[\(\)]/',$text)[1]; 
+0

Это работает отлично, но как удалить скобку из строки секунд? – user962449

+0

@ user962449 надеюсь, что редактирование помогает – Anirudha

+0

второстепенное, но я бы включил флаг ['PREG_SPLIT_NO_EMPTY'] (http://php.net/manual/en/function.preg-split.php) ([пример] (http: //ideone.com/2DvsiU)). – Emissary

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