正则表达式进行查询

前端之家收集整理的这篇文章主要介绍了正则表达式进行查询前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

 

        正则表达式通常被用来检索或者替换那些符合某个模式的文本内容,根据指定的匹配模式匹配文本中符合要求的特殊的字符串。eg:从一个文本文件提取电话号码,查找一篇文章中重复的单词等。

        在MysqL中使用REGEXP关键字指定正则表达式的字符匹配模式,REGEXP操作符后常用的匹配字符如下表所示。

选项 作用
^ 匹配文本的开始字符
$ 匹配文本的结束字符
. 匹配任何单个字符
* 匹配零个或多个在它前面的字符
+ 匹配前面的字符1次或多次
<字符串> 匹配包含指定字符串的文本
[字符集合] 匹配字符集合中任何一个字符
[^] 匹配不在括号中的任何字符
字符串{n,} 匹配前面的字符串至少n次
字符串{n,m} 匹配前面的字符串至少n次、至多m次。如果n=0,此参数为可选参数。

例1  查学生表中s_name字段以字母“王”开头的记录。

查询语句:

SELECT * FROM student WHERE s_name REGEXP ^王‘;

查询结果:

分享图片

例2  查学生表中s_name字段以字母“云”结尾的记录。

查询语句:

SELECT * FROM student WHERE s_name REGEXP 云$

查询结果:

分享图片

例3  查询vendors表中vend_id字段值包含字母“B”和“0”并且字母间存在2个其他字母的记录。 

查询语句:

SELECT vend_id FROM vendors WHERE vend_id REGEXP B..0

查询结果:

例4

分享图片

例4    查询vendors表中vend_id字段值以字母“BR”开头的记录。

查询语句:

SELECT vend_id FROM vendors WHERE vend_id REGEXP ^BR*

查询结果:

分享图片

例5   查询vendors表中vend_name字段值包含字符串"ll"的记录。

查询语句:

SELECT vend_name FROM vendors WHERE vend_name REGEXP ll

查询结果:

 

分享图片

例6  查询vendors表中vend_name字段值包含字符串"ll"或者“ea”的记录。

查询语句:

SELECT vend_name FROM vendors WHERE vend_name REGEXP ll|ea

查询结果:

分享图片

例6  查询vendors表中vend_name字段值包含字母"l"或者“e”的记录。

 查询语句:

SELECT vend_name FROM vendors WHERE vend_name REGEXP [le]

查询结果:

分享图片

例7  查询vendors表中vend_id字段数值包含1或者2的记录。

 查询语句:

SELECT * FROM vendors WHERE vend_id REGEXP [1-2]

查询结果:

 

分享图片

例8  查询customer表中c_id字段数值包含1到5以外字符的记录。

查询语句:

SELECT * FROM customer WHERE c_id REGEXP [^1-5]

查询结果:

 

分享图片

例9  查询vendors表中vend_name字段值中出现字母"l"至少2次的记录。

 查询语句:

SELECT * FROM vendors WHERE vend_id REGEXP l{2,}

查询结果:

分享图片

猜你在找的正则表达式相关文章