Pull to refresh

Хватит писать регулярные выражения. Используйте вербальные выражения

Reading time1 min
Views90K
Сразу оговорюсь, если Вы — профессионал в использовании регулярных выражений, то Вам лучше дальше не читать во избежание ^(.*)$

GitHub-пользователь jehna нашёл интересный метод ухода от реализации сложных регулярных выражений традиционным способом.
Вербальные выражения превращают сложный и иногда нетривиальный путь от логики до собственно регулярного выражения в ненавязчивую прогулку с использованием связанного набора функций.

Результат, мягко говоря, удивителен. Вот вербальное выражение из README-файла репозитория для тестирования правильности URL:
var tester = VerEx()
            .startOfLine()
            .then( "http" )
            .maybe( "s" )
            .then( "://" )
            .maybe( "www." )
            .anythingBut( " " )
            .endOfLine();


Подобный стиль может показаться излишне простым олдскульным регулярщикам, но даже они могут согласиться, что таким способом гораздо легче описать несложное (пока, прим. пер.) регулярное выражение.

Основа проекта — JS-библиотека, но также имеется куча реализаций и на других языках.

Оригинал статьи.

P. S. Если кто-то уже использует эту библиотеку, пожалуйста, приведите пример сложной регулярки, написанной в данном стиле.
Tags:
Hubs:
Total votes 199: ↑170 and ↓29+141
Comments205

Articles