Regex

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 785
42
35
Киев
#1
Всем привет!
Уже мозг сломал, но все равно не могу решить вопрос с BB-кодами.
Ситуация вот какая... нужно регулярное выражение для строки цитаты.
Код:
[quote="name, post: 12345"]comment[/quote]
получилось такое выражение
Код:
\[quote.*?(name='(.*?)').*?(post='(.*?)')(?:=([^\\]]+))?]
Но чувствительно к наличию всех параметров :ooo:
А хотелось бы не зависеть от параметров, но и не выбрасывать их. Плюс ко всему - комментарий в комментарии.
Помогите плиз
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 785
42
35
Киев
#2
Вопрос снят.
Вот такая регулярка получилась
<!--shcode--><pre><code class='perl'>\[quote(.*?)(name='(.*?)'.?)?(post='(.*?)')?][/CODE]
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 435
351
homepage.mac.com
#3
? - заменяет space, я так понимаю ;) еще есть \s и \t (табуляция) но вот в каких регэкспах (движках) - не помню
цель просто смэтчить? - просто непонятны скобки - они обычно для дальнейшей параметризации (замены например, с подстановкой совпавшего)

символ и более одного - .+ (звездочка непонятна)
для post - надо только цифры оставить \d+
http://www.w3schools.com/jsref/jsref_obj_regexp.asp
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 785
42
35
Киев
#4
Это все методом научного тыка по образу и подобию.
Такая строка позволяет работать с bb-кодом вида

Код:
[quote="name, post: 12345"]comment[/quote]
[quote post='12345']comment[/quote]
[quote="name"]comment[/quote]
[quote]comment[/quote]
Если есть предложить что-то правильней - буду признателен
? - одно вхождение или ни одного
скобки - разделение результатов по блокам
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 435
351
homepage.mac.com
#5
я говорил о скобках, что они, в основном, для подстановки
т.е. взять результат соответствия по номеру и вставить его в др. место (в кач. подстроки)