9 正则表达式

来源:互联网 发布:斗鱼免费刷火箭软件 编辑:程序博客网 时间:2024/06/12 20:12

作用:

匹配文本中特殊的串,在where子句中使用正则表达式来更好地过滤数据
like和regexp的区别:

like匹配整个列;
regexp在列值中匹配(它也可以使用^和$来匹配整个列值)。
MySQL正则表达式匹配不区分大小写
为了区分,使用binary
.:表示匹配任意一个字符。

使用’|’进行or匹配:

例:
selete p_name
from product
where p_name regexp ‘1000|2000’
order by p_name;

使用”[]”,匹配几个字符之一:
[]是另一形式的or语句

selete p_name
from product
where p_name regexp ‘[123] ton’
order by p_name;
区分:where p_name regexp ‘1|2|3 ton’
1或2或3ton

^ :在集合的开头放置^,表示匹配除这些字符外任何东西,如:[^123]

-:定义范围,如:[0-9]、[a-z]

转义:匹配特殊字符:\作为前导,如:”\-“查找’-‘;”\.”查找’.’;”\\”查找’\’
注意:大多数正则表达式使用单个反斜杠转义特殊字符,但MySQL使用两个。

匹配多个

元字符 说明 * 0个或多个 + 一个或多个 ? 0个或一个 {n} 指定数目 {n,} 不少于n个 {n,m} n-m个

例:
selete p_name
from product
where p_name regexp ‘\[0-9] sticks?\)’
order by p_name;

\[0-9] sticks?\):两个”\”分别匹配‘(’’)’,sticks s后的?:?匹配它前面的字符0次或1次出现

例:
where p_name regexp ‘[[:digit:]]{4}’:匹配连在一起的4位数字

定位符:^:开始;$:结尾

以上,^有两种作用:
在集合中([和]定义),用来否定集合;
串的开始处;

原创粉丝点击