MySQL - [09] 正则表达式

转载:https://mp.weixin.qq.com/s/7RavuYGs9SthX2pxGJppqw

 

 

select *
from t1
where name rlike '^[a-zA-Z]+$';

 

 

一、简介

正则表达式使用rlike作为模式匹配的关键字,其语法结构如下

select column_name
from table_name
where column_name rlike 'pattern';

column_name表示从中进行匹配的列名

table_name表示从中查询数据的表名

pattern是用户提供的正则表达式模式

pattern(正则表达式)的模式及其说明如下

表达式 说明
. 与任何单个字符匹配(换行符除外)。
.* 零次或多次匹配任何字符
.+ 一次或多次匹配任何字符
[abc] 匹配abc集中的任何字符
[^abc] 匹配不在abc集中的任何字符
\d 匹配任意数字字符
(?([^\r\n])\s) 与任何空格字符匹配
\b 在单词的开头或结尾匹配
^ 在行首匹配
.$ 匹配任何换行符
\w\r?\n 匹配行尾的单词字符
(dog|cat) 捕获表达式dog|cat并对其进行隐式编号
(?<pet>dog|cat) 捕获子表达式dog|cat并将其命名为pet

 

 

 

 

二、示例

(1)匹配以特定字符串开头的值:select * from fruits where name rlike '^[A-G]';

(2)匹配以特定字符串结尾的值:select * from fruits where name rlike 'e$';

(3)匹配包含指定字符串的值:select * from fruits where name rlike 'an';

(4)匹配包含特定长度字符串的值:select * from fruits where name rlike '^.{6}$';

(5)检查是否为n为数字:'^\d{n}$'

(6)检查是否为非零的正整数:'^[1-9]\d*$'

(7)检查是否为浮点数:'^(-?\d+)(.\d+)?$'

(8)检查是否为负整数:'^-\d+$'

(9)检查是否为正整数或浮点数:'^\d+(.\d+)?$'

(10)检查是否为正数:'^[1-9]\d*|0$'

(11)检查是否为非负整数:'^\d+$'

(12)检查是否为非负浮点数:'^\d+(.\d+)?$'

(13)检查是否为汉字:'^[\u4e00-\u9fa5]+$'

(14)检查是否为英文和数字:'^[A-Za-z0-9]+$'

(15)检查是否为纯英文字母:'^[a-zA-Z]+$'

(16)检查是否为大写英文字母:'^[A-Z]+$'

(17)检查是否为小写英文字母:'^[a-z]+$'

(18)邮箱地址:'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$'

(19)手机号码:'^\d{11}$'

(20)IP地址:'^\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}$'

(21)URL地址:'^(http|https)://[\w-]+(.[\w-]+)+([\w.,@?^=%&:/+#-]*[\w@?^=%&/+#-])?$'

 

 

 

— 业精于勤荒于嬉,行成于思毁于随 —

posted @ 2024-05-29 10:15  HOUHUILIN  阅读(3)  评论(0编辑  收藏  举报