Comments 10
В текущем синтаксисе есть что-то чарующее. Моск радуется когда после отладки в RegexBuddy получается маленькая строчка, которая решает большие проблемы. К тому же, со временем, синтаксис становится логичным и понятным.
Еще момент, подобный синтаксис облегчает парсинг RegExp (это мало сказывается при условии компиляции в p-code, но все же).
В целом, если вы оформите и доведете до ума свой креатив, почему бы и нет (я — нет)? Ведь есть же YAML (я люблю его) :)
Еще момент, подобный синтаксис облегчает парсинг RegExp (это мало сказывается при условии компиляции в p-code, но все же).
В целом, если вы оформите и доведете до ума свой креатив, почему бы и нет (я — нет)? Ведь есть же YAML (я люблю его) :)
ИМХО — проще не стало. Стало по-другому, и вместо, например, (one|two) нужно писать кучу каких-то скобок, ифов и прочих знаков. Вот это лаконично:
(www\.)?([a-z0-9]+)\.([a-z]+)
Лаконично, понятно, просто. Расписывать подробнее совсем не ясно для чего.
(www\.)?([a-z0-9]+)\.([a-z]+)
Лаконично, понятно, просто. Расписывать подробнее совсем не ясно для чего.
Одна функция на любом языке, конвертирующая Ваш формат в стандартный — и будет Вам счастье, а всем остальным спокойствие. Регекспы — они совсем не страшные, особенно если не забывать про модификатор /x.
Ну осталось только перевести регулярки на парадигму ООП и дело в шляпе )
Мне кажется, кроме прочтения книги вам стоит плотно поупражняться практически — тогда вы наверняка поймете, что всё что вы написали никому не нужно и только всё усложняет. Никто не мешает вам разбирать строки средствами знакомого вам языка программирования и не используя регекспы, вместо того, чтобы делать по сути новый язык из уже существующего и сформировавшегося (и кстати именно в таком виде заслужившего огромную популярность и полезность).
Ну и конечно смотрится это всё ужасно, если честно, например символьные классы POSIX — но это моё личное мнение.
Мне кажется, кроме прочтения книги вам стоит плотно поупражняться практически — тогда вы наверняка поймете, что всё что вы написали никому не нужно и только всё усложняет. Никто не мешает вам разбирать строки средствами знакомого вам языка программирования и не используя регекспы, вместо того, чтобы делать по сути новый язык из уже существующего и сформировавшегося (и кстати именно в таком виде заслужившего огромную популярность и полезность).
Ну и конечно смотрится это всё ужасно, если честно, например символьные классы POSIX — но это моё личное мнение.
Автор. Советую вам просто побольше потренироваться работать с РВ. Вы через некоторое время, сможете отделять взглядом блоки и без дополнительных телодвижений видеть, что происходит в РВ.
Был один проект, где активно использовал регулярные выражения, не помогло особо. То есть когда пишешь, все нормально, а стоит через какое-то время вернуться к этому РВ, чтобы что-то поправить и начинаешь минут 5 вглядываться, чтобы понять что тут записано.
Чтобы этого избежать, как верно подметили выше надо использовать модификатор x, он достаточно сильно облегчает понимание. И комментарии опять же. Вот выше приведенную регулярку можно записать так:
Это конечно просто пример, в сложных регекспах даже просто форматирование скобок переносами и табуляцией очень сильно помогает
(www\.)? # начинается с необязательного 'www.'
([a-z0-9]+) # после чего любое количество цифр и букв (> 0)
\. # обязательно точка
([a-z]+) # зона - только из букв
Это конечно просто пример, в сложных регекспах даже просто форматирование скобок переносами и табуляцией очень сильно помогает
кг/ам
не надо в декларативный язык совать императивный мусор…
встраивать один язык в другой в виде строки — дерьмовая практика. это касается прежде всего sql и pcre
не надо в декларативный язык совать императивный мусор…
встраивать один язык в другой в виде строки — дерьмовая практика. это касается прежде всего sql и pcre
Sign up to leave a comment.
Улучшим регулярные выражения