9 正則表達式

作用:

匹配文本中特殊的串,在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位數字

定位符:^:開始;$:結尾

以上,^有兩種作用:
在集合中([和]定義),用來否定集合;
串的開始處;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章