С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950
|
Добавлено: 03/08/09 в 14:04 |
Кто знает регулярное выражение которое выделяло бы первую внешнюю пару скобок?
Пример:
Текст
a (b(c)) d (e(f))
На выходе надо иметь массив
'a '
'(b(c))' - или можно без скобок 'b(c)'
' d (e(f))'
|
|
|
|
С нами с 16.10.06
Сообщения: 56
Рейтинг: 259
|
Добавлено: 03/08/09 в 14:38 |
На чистых регексах (без рекурсии) это невозможно. Могу пояснить почему.
Здесь лучше обойтись без регексов - обычным поиском подстроки.
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 03/08/09 в 16:40 |
Работа для лексического анализатора, ну для бедных (кто на PHP пишет) да, поиск открывающей и закрывающей скобки в строке, и какой-то счетчик уровня глубины в цикле. Только непонятно, почему "a" отдельно от "(b(c))", а "d (e(f))" - вместе, хотя вроде совершенно одинаковые конструкции.
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 03/08/09 в 17:09 |
|
|
|
|
С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950
|
Добавлено: 03/08/09 в 17:11 |
Уже сделал всё на preg_match.
Ответы оценил по макс. +6 на рыло.
|
|
|
|
С нами с 20.01.03
Сообщения: 18003
Рейтинг: 9760
|
Добавлено: 03/08/09 в 17:40 |
пример интересный,
почему "а" от "бц" отделилось, а "д" от "еф" - нет?
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 05/08/09 в 14:22 |
Код: | preg_match("#\S+#",$str,$out); |
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |