Почему регулярные выражения не могут использовать ключевые слова вместо символов? - PullRequest
11 голосов
/ 10 марта 2009

Хорошо, я с трудом понимаю основы RegEx, но почему они не могут разработать его для использования ключевых слов (например, SQL) вместо некоторых загадочных подстановочных знаков и символов?

Это для производительности, так как RegEx интерпретируется / анализируется во время выполнения? (не скомпилировано)

А может, для скорости написания? Учитывая, что когда вы изучаете некоторые «простые» комбинации символов, становится легче набирать символ 1 вместо ключевого слова?

Ответы [ 14 ]

1 голос
/ 10 марта 2009

Я знаю, что он отвечает на ваш вопрос неправильно, но RegExBuddy имеет функцию, которая объясняет ваше регулярное выражение на простом английском языке. Это может сделать его немного легче учиться.

1 голос
/ 10 марта 2009

Я не думаю, что ключевые слова будут полезны. Регулярные выражения как таковые являются сложными, но также очень мощными.

Что мне кажется более запутанным, так это то, что каждая поддерживающая библиотека изобретает свой собственный синтаксис вместо использования (или расширения) классического регулярного выражения Perl (например, \ 1, $ 1, {1}, ... для замен и многих других примеров) .

1 голос
/ 10 марта 2009

На самом деле довольно легко реализовать "более простую" форму регулярного выражения - пожалуйста, смотрите мой ответ здесь . В двух словах: напишите несколько функций, которые возвращают строки регулярных выражений (и при необходимости принимают параметры).

1 голос
/ 10 марта 2009

Потому что идея регулярных выражений, как и многих вещей, происходящих из UNIX, заключается в том, что они кратки, предпочитая краткость, а не читабельность. Это на самом деле хорошая вещь. Я закончил писать регулярные выражения (вопреки моему лучшему суждению) длиной 15 строк. Если бы у этого был подробный синтаксис, это не было бы регулярным выражением, это была бы программа.

...