应用示例,查找用户表中Email格式错误的用户记录:
SELECT * FROM usersWHERE email NOT REGEXP "^[A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z]{2,4}$"MySQL数据库中正则表达式的语法,主要包括各种符号的含义。
mysql> select "xxxyyy" regexp "^xx";+-----------------------+| "xxxyyy" regexp "^xx" |+-----------------------+| 1 |+-----------------------+1 row in set (0.00 sec)查询xxxyyy字符串中是否以xx开头,结果值为1,表示值为true,满足条件。
mysql> select "xxxyyy" regexp "x*";这个SQL语句,正则匹配为true。
mysql> SELECT name FROM person_tbl WHERE name REGEXP "^st";查询找到所有的名字以"ok"结尾
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$";一个正则表达式中的可以使用以下保留字
mysql> select "fonfo" REGEXP "^fo$"; -> 0(表示不匹配) mysql> select "fofo" REGEXP "^fo"; -> 1(表示匹配)$
mysql> select "fono" REGEXP "^fono$"; -> 1(表示匹配) mysql> select "fono" REGEXP "^fo$"; -> 0(表示不匹配) .匹配任何字符(包括新行)
mysql> select "fofo" REGEXP "^f.*"; -> 1(表示匹配) mysql> select "fonfo" REGEXP "^f.*"; -> 1(表示匹配)a*
mysql> select "Ban" REGEXP "^Ba*n"; -> 1(表示匹配) mysql> select "Baaan" REGEXP "^Ba*n"; -> 1(表示匹配) mysql> select "Bn" REGEXP "^Ba*n"; -> 1(表示匹配)a+
mysql> select "Ban" REGEXP "^Ba+n"; -> 1(表示匹配) mysql> select "Bn" REGEXP "^Ba+n"; -> 0(表示不匹配)a?
mysql> select "Bn" REGEXP "^Ba?n"; -> 1(表示匹配) mysql> select "Ban" REGEXP "^Ba?n"; -> 1(表示匹配) mysql> select "Baan" REGEXP "^Ba?n"; -> 0(表示不匹配)de|abc
mysql> select "pi" REGEXP "pi|apa"; -> 1(表示匹配) mysql> select "axe" REGEXP "pi|apa"; -> 0(表示不匹配) mysql> select "apa" REGEXP "pi|apa"; -> 1(表示匹配) mysql> select "apa" REGEXP "^(pi|apa)$"; -> 1(表示匹配) mysql> select "pi" REGEXP "^(pi|apa)$"; -> 1(表示匹配) mysql> select "pix" REGEXP "^(pi|apa)$"; -> 0(表示不匹配)(abc)*
mysql> select "pi" REGEXP "^(pi)*$"; -> 1(表示匹配) mysql> select "pip" REGEXP "^(pi)*$"; -> 0(表示不匹配) mysql> select "pipi" REGEXP "^(pi)*$"; -> 1(表示匹配){1}
mysql> select "aXbc" REGEXP "[a-dXYZ]"; -> 1(表示匹配) mysql> select "aXbc" REGEXP "^[a-dXYZ]$"; -> 0(表示不匹配) mysql> select "aXbc" REGEXP "^[a-dXYZ]+$"; -> 1(表示匹配) mysql> select "aXbc" REGEXP "^[^a-dXYZ]+$"; -> 0(表示不匹配) mysql> select "gheis" REGEXP "^[^a-dXYZ]+$"; -> 1(表示匹配) mysql> select "gheisa" REGEXP "^[^a-dXYZ]+$"; -> 0(表示不匹配)