Список метасимволов для квадратных скобок регулярных выражений MySQL - PullRequest
2 голосов
/ 15 ноября 2011

Как ни странно, я нигде не могу найти список символов, которые я не могу безопасно использовать в качестве литералов в квадратных скобках регулярных выражений MySQL, не экранируя их или не требуя использования [:character_class:].

(Также ответ, вероятно, должен быть специфичным для MySQL, потому что регулярные выражения MySQL, по-видимому, отсутствуют по сравнению с регулярными выражениями в Perl / PHP / Javascript и т. Д.).

Ответы [ 2 ]

4 голосов
/ 15 ноября 2011

Почти все метасимволы (включая точку ., квантификаторы +, * и ?, привязку конца строки $ и т. Д.) Не имеют специального значения в классах символов, так как Несколько заметных исключений:

  • закрывающая скобка ], по понятным причинам
  • Caret ^, который используется для отрицания класса символов (например: [^ab] соответствует любому символу , но a и b).
  • дефис -, который используется для обозначения диапазона (например: [0-9] соответствует любой цифре)

Тем не менее, они могут быть добавлены без экранирования, если размещены в стратегических местах в пределах класса персонажа:

  • закрывающая скобка может быть размещена сразу после открывающей скобки, например: []a] соответствует [ или a.
  • каретка может быть размещена в любом месте, но после открывающей скобки, например: [a^] соответствует ^ или a
  • дефис может быть расположен сразу после открывающей скобки или перед закрывающей скобкой, например: [-a] и [a-], оба соответствуют a и -.

Дополнительную информацию можно найти на странице справки по POSIX regex (спасибо Tomalak Geret'kal!)

0 голосов
/ 15 ноября 2011

С документация , справа вверху:

В этом разделе приводятся примеры специальных символов и конструкции, которые могут использоваться в MySQL для операций REGEXP. Это делает не содержат все детали, которые можно найти в Генри Спенсера regex (7) страница справочника. Эта страница руководства включена в исходный код MySQL дистрибутивы, в файле regex.7 в каталоге regex.

Указанную man-страницу можно найти скопированной здесь (спасибо, Google!). Информация, которую вы ищете, доступна там.

...