Spec-Zone .ru
спецификации, руководства, описания, API

12.5.2. Регулярные выражения

Таблица 12.9. Представьте Операторы Регулярного выражения в виде строки

Имя Описание
NOT REGEXP Отрицание REGEXP
REGEXP Сопоставление с образцом используя регулярные выражения
RLIKE Синоним для REGEXP

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

MySQL использует реализацию Генри Спенсером регулярных выражений, которая нацеливается на соответствие с POSIX 1003.2. MySQL использует расширенную версию, чтобы поддерживать операции сопоставления с образцом, выполняемые с REGEXP оператор в SQL-операторах.

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

Регулярное выражение описывает ряд строк. Самое простое регулярное выражение является тем, у которого нет никаких специальных символов в нем. Например, регулярное выражение hello соответствия hello и ничто иное.

Нетривиальные регулярные выражения используют определенные специальные конструкции так, чтобы они могли соответствовать больше чем одну строку. Например, регулярное выражение hello|word соответствия любой строка hello или строка word.

Как более сложный пример, регулярное выражение B[an]*s соответствия любая из строк Bananas, Baaaaas, Bs, и любая другая строка, запускающаяся с a B, окончание s, и содержание любого числа a или n символы промежуточный.

Регулярное выражение для REGEXP оператор может использовать любой из следующих специальных символов и конструкций:

Чтобы использовать литеральный экземпляр специального символа в регулярном выражении, предшествуйте этому двумя наклонными чертами влево (\) символы. Синтаксический анализатор MySQL интерпретирует одну из наклонных черт влево, и библиотека регулярных выражений интерпретирует другой. Например, чтобы соответствовать строку 1+2 это содержит специальное предложение + символ, только последним из следующих регулярных выражений является корректное:

mysql> SELECT '1+2' REGEXP '1+2';                       -> 0mysql> SELECT '1+2' REGEXP
        '1\+2';                      -> 0mysql> SELECT '1+2'
        REGEXP '1\\+2';                     -> 1