Regex

NickProstoNick

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

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Вопрос снят.
Вот такая регулярка получилась
<!--shcode--><pre><code class='perl'>\[quote(.*?)(name='(.*?)'.?)?(post='(.*?)')?][/CODE]
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 976
611
BIT
384
? - заменяет space, я так понимаю ;) еще есть \s и \t (табуляция) но вот в каких регэкспах (движках) - не помню
цель просто смэтчить? - просто непонятны скобки - они обычно для дальнейшей параметризации (замены например, с подстановкой совпавшего)

символ и более одного - .+ (звездочка непонятна)
для post - надо только цифры оставить \d+
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Это все методом научного тыка по образу и подобию.
Такая строка позволяет работать с 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
7 976
611
BIT
384
я говорил о скобках, что они, в основном, для подстановки
т.е. взять результат соответствия по номеру и вставить его в др. место (в кач. подстроки)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!