Реклама на сайте Advertise with us

PHP регулярное выражение. Выделение сбалансированых скобок

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950


Передовик Master-X (01.01.2008)
Ссылка на сообщениеДобавлено: 03/08/09 в 14:04       Ответить с цитатойцитата 

Кто знает регулярное выражение которое выделяло бы первую внешнюю пару скобок?
Пример:
Текст
a (b(c)) d (e(f))
На выходе надо иметь массив
'a '
'(b(c))' - или можно без скобок 'b(c)'
' d (e(f))'

0
 



С нами с 16.10.06
Сообщения: 56
Рейтинг: 259

Ссылка на сообщениеДобавлено: 03/08/09 в 14:38       Ответить с цитатойцитата 

На чистых регексах (без рекурсии) это невозможно. Могу пояснить почему.
Здесь лучше обойтись без регексов - обычным поиском подстроки.

Adult Web Art Team :D

6
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 03/08/09 в 16:40       Ответить с цитатойцитата 

Работа для лексического анализатора, ну для бедных (кто на PHP пишет) да, поиск открывающей и закрывающей скобки в строке, и какой-то счетчик уровня глубины в цикле. Только непонятно, почему "a" отдельно от "(b(c))", а "d (e(f))" - вместе, хотя вроде совершенно одинаковые конструкции.

6
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 03/08/09 в 17:09       Ответить с цитатойцитата 

6
 



С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950


Передовик Master-X (01.01.2008)
Ссылка на сообщениеДобавлено: 03/08/09 в 17:11       Ответить с цитатойцитата 

Уже сделал всё на preg_match.
Ответы оценил по макс. +6 на рыло.

0
 



С нами с 20.01.03
Сообщения: 18003
Рейтинг: 9760


Передовик Master-X (01.03.2005) Передовик Master-X (16.03.2005) Передовик Master-X (16.10.2016) Передовик Master-X (01.11.2016) Передовик Master-X (16.11.2016) Ветеран трепа Master-X (01.12.2016)
Ссылка на сообщениеДобавлено: 03/08/09 в 17:40       Ответить с цитатойцитата 

пример интересный,
почему "а" от "бц" отделилось, а "д" от "еф" - нет?

0
 

php

С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410


Передовик Master-X (16.01.2010)
Ссылка на сообщениеДобавлено: 05/08/09 в 14:22       Ответить с цитатойцитата 

Код:
preg_match("#\S+#",$str,$out);

IPhosters.com - любые решения для Вас (виртуалы от $4.99, vps от $11.99, дедики от $95)

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »