Справочное руководство по MySQL версии 4.1.1-alpha


Содержание


Регулярные выражения (regex, regexp) представляют собой мощный способ выполнения сложного поиска.

В MySQL используется расширенная версия предложенной Генри Спенсером (Henry Spencer) реализации регулярных выражений, которая ориентирована на соответствие POSIX 1003.2.

В данном разделе приведен упрощенный справочник; подробности здесь опущены. Чтобы получить более точную информацию, обращайтесь к странице руководства Генри Спенсера regex(7), которая включена в дистрибутив исходного кода. See section C Благодарности.

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

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

Можно привести и более сложный пример: регулярному выражению B[an]*s

соответствует любая из строк: Bananas, Baaaaas, Bs, а также любая другая строка, начинающаяся с B, заканчивающаяся на s и содержащая любое количество символов a или n между ними.

В регулярном выражении могут использоваться любые специальные символы/структуры из числа приведенных ниже:

^

Соответствие началу строки.

mysql> SELECT "fo\nfo" REGEXP "^fo$"; -> 0 mysql> SELECT "fofo" REGEXP "^fo"; -> 1

$

Соответствие концу строки.

mysql> SELECT "fo\no" REGEXP "^fo\no$"; -> 1 mysql> SELECT "fo\no" REGEXP "^fo$"; -> 0

.

Соответствие любому символу (включая перевод строки).

mysql> SELECT "fofo" REGEXP "^f.*"; -> 1 mysql> SELECT "fo\nfo" REGEXP "^f.*"; -> 1

a*

Соответствие любой последовательности из нуля или более символов "a".

mysql> SELECT "Ban" REGEXP "^Ba*n"; -> 1 mysql> SELECT "Baaan" REGEXP "^Ba*n"; -> 1 mysql> SELECT "Bn" REGEXP "^Ba*n"; -> 1




Начало    



Книжный магазин