Сразу оговорюсь, если Вы — профессионал в использовании регулярных выражений, то Вам лучше дальше не читать во избежание ^(.*)$
GitHub-пользователь jehna нашёл интересный метод ухода от реализации сложных регулярных выражений традиционным способом.
Вербальные выражения превращают сложный и иногда нетривиальный путь от логики до собственно регулярного выражения в ненавязчивую прогулку с использованием связанного набора функций.
Результат, мягко говоря, удивителен. Вот вербальное выражение из README-файла репозитория для тестирования правильности URL:
Подобный стиль может показаться излишне простым олдскульным регулярщикам, но даже они могут согласиться, что таким способом гораздо легче описать несложное (пока, прим. пер.) регулярное выражение.
Основа проекта — JS-библиотека, но также имеется куча реализаций и на других языках.
Оригинал статьи.
P. S. Если кто-то уже использует эту библиотеку, пожалуйста, приведите пример сложной регулярки, написанной в данном стиле.
GitHub-пользователь jehna нашёл интересный метод ухода от реализации сложных регулярных выражений традиционным способом.
Вербальные выражения превращают сложный и иногда нетривиальный путь от логики до собственно регулярного выражения в ненавязчивую прогулку с использованием связанного набора функций.
Результат, мягко говоря, удивителен. Вот вербальное выражение из README-файла репозитория для тестирования правильности URL:
var tester = VerEx() .startOfLine() .then( "http" ) .maybe( "s" ) .then( "://" ) .maybe( "www." ) .anythingBut( " " ) .endOfLine();
Подобный стиль может показаться излишне простым олдскульным регулярщикам, но даже они могут согласиться, что таким способом гораздо легче описать несложное (пока, прим. пер.) регулярное выражение.
Основа проекта — JS-библиотека, но также имеется куча реализаций и на других языках.
Оригинал статьи.
P. S. Если кто-то уже использует эту библиотеку, пожалуйста, приведите пример сложной регулярки, написанной в данном стиле.
