SELECT * FROM prices where tkey REGEXP ‘^toy’;
Вернет все записи где текст в колонке tkey начинается с букв “toy”.
SELECT * FROM prices where tkey  REGEXP ‘[[:digit:]]’;
Вернет все записи где  в колонке tkey только цифры.
^ — означает начало слова
$ — конец
. — Соответствие любому символу (включая перевод строки).
a* — Соответствие любой последовательности из нуля или более символов «a».
a+ — Соответствие любой последовательности из одного или более символов «a».
a? — Соответствие как нулю, так и одному символу «a».
de|abc — Соответствие как последовательности de, так и последовательности abc.
(abc)* — Соответствие нулю или более вхождениям последовательности abc.
[а-ЯЁё] — в слове могут быть буквы только Русского алфавита.
[а-ЯЁёa-Z] — русскаго и англикого

Пример использования:
SELECT * FROM users WHERE email REGEXP «^[a-z]+@+(mail)+\.+[a-z]{2,3}$»
Вернет все записи из таблицы users где email пользователя находится на сервере mail (например pupkin@mail.ru)
Разберем по порядку:
[a-z]+ — говорит что начинаться строка должна только с букв английского алфавита, далее
@+ — говорит о том что должен быть знак собаки, далее
(mail)+ — говорит о том, что далее после сабаки должно идти слово mail, далее
\.+ — говорит о том что дальше должна идти точка («\» — знак экранирования, т.е. необходимо ставить перед «.» и «\» — если хотите включить их в диапазон значений), далее
[a-z]{2,3} — говорит о том что после точки может быть от двух до трех символов из букв английского алфавита

3 комментария

Стас 8 октября 2015 - 1:39

С like разобрался более менее а с этим опредетором сообще тьма темная для меня.

Reply
Офигевший K.O. 6 ноября 2013 - 16:47

Статья то что нужно. Можно было бы и порасширенней написать про регекспы…

Reply
Артем 18 апреля 2012 - 11:54

Статейка старенькая, но была найдена в гугле по запросу REGEXP, поэтому лучше, думаю, отпишусь для желающих понять, механизм построения регекспов)
REGEXP «^[a-z]+@+(mail)+\.+[a-z]{2,3}$» соответствует еще и записи, например login@@@mailmail……de
но не соответствует, например, записи Andrey-Vladimiroff.ich_111@mAiL.rU

 
 
 
Немного ошибочно и пояснение к запросу.

^[a-z]+ — говорит о том, что последовательность начинается с одного или более маленького символа английского алфавита (заглавные буквы, цифры, точка, символ подчеркивания и дефис не перечислены, поэтому не удовлетворяют условию).
(mail)+ говорит о том, что после  @+(одного или более символа «) должна следовать одна или более последовательность маленьких символов в порядке «m»,»a»,»i»,»l». 
ну и \.+ — точно так же.. один или более символ «.»

Такое занудное, но более вдумчивое перефразирование хорошо помогает в понимании построения регулярных выражений. И сразу увидеть, где в регулярном выражении ошибка(и) 😉

Reply

Leave a Comment

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

You may also like