Latest web development tutorials

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

В предыдущем разделе мы узнали через MySQL LIKE ...% для нечеткого соответствия.

MySQL также поддерживает другие регулярные выражения, оператор REGEXP MySQL использовать регулярные выражения.

Если вы знаете PHP или Perl, то операция очень проста, так как регулярное выражение MySQL соответствие похож на этих сценариев.

В таблице ниже нормального режима его можно использовать в операторе RegExp.

режим описание
^ Соответствует началу строки. Если вы устанавливаете свойство Multiline объекта RegExp, ^ также соответствует '\ п' позицию или '\ г' после.
$ Матч входной конец строки. Если установить свойство Multiline RegExp объект, также соответствие $ положение '\ п' или '\ г' раньше.
, Соответствует любому одному символу, кроме "\ п" есть. Для того, чтобы соответствовать в том числе '\ N', в том числе любые символы, такие, как использование '[. \ N]' режим.
[...] Набор символов. Соответствует любому символу включен. Например, '[ABC]' соответствует "простой" в 'а'.
[^ ...] Отрицательный набор символов. Соответствует любому символу, который не входит в комплект. Например, '[^ ABC]' соответствует "простой" в "р".
p1 | p2 | p3 Match p1, p2, p3 или. Например, 'г | пища "может соответствовать" Z "или" еда ". '(Z | е) ООД "будет соответствовать" zood "или" еда ".
* Матчи предыдущие Подвыражение ноль или более раз. Например, зо * может соответствовать "Z" и "зоопарк". * Эквивалент {0,}.
+ Матчи предыдущие Подвыражение один или несколько раз. Например, 'ZO +' будет соответствовать "Зо" и "зоопарк", но не может сравниться с "Z". + Эквивалентно {1}.
{N} п является неотрицательным целым числом. Сопоставление определенные п раз. Например, 'о {2}' не совпадает с "Bob" в "O", но не может сравниться с "едой" в два о.
{N, т} м и п являются неотрицательными целыми числами, где п <= т. Матч по крайней мере п раз и совпадают с т раз.

примеров

После того, как вы знаете, более регулярные потребности, мы можем быть больше, чтобы их собственные нужды писать SQL-оператор с регулярным выражением. Ниже мы приведем несколько небольших примеров (имя таблицы: person_tbl), чтобы углубить наше понимание:

Найти все названия полей данных в начале 'St' с:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

Найти все названия поля данных «ОК» для окончания:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

Найти поле содержит имя "MAR" строк все данные, которые:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

Найти поле имени, чтобы начать с гласными и с 'OK' конец строки всех данных:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';