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 комментария
С like разобрался более менее а с этим опредетором сообще тьма темная для меня.
Статья то что нужно. Можно было бы и порасширенней написать про регекспы…
Статейка старенькая, но была найдена в гугле по запросу 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».
ну и \.+ — точно так же.. один или более символ «.»
Такое занудное, но более вдумчивое перефразирование хорошо помогает в понимании построения регулярных выражений. И сразу увидеть, где в регулярном выражении ошибка(и) 😉