mysql學習(一)正規表示式

2021-08-04 07:03:37 字數 1381 閱讀 5124

mysql可以通過 

like ...%

來進行模糊匹配

mysql 同樣也支援其他正規表示式的匹配, mysql中使用 regexp 操作符來進行正規表示式匹配

模式描述

^匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,^ 也匹配 '\n' 或 '\r' 之後的位置。

$匹配輸入字串的結束位置。如果設定了regexp 物件的 multiline 屬性,$ 也匹配 '\n' 或 '\r' 之前的位置。

.匹配除 "\n" 之外的任何單個字元。要匹配包括 '\n' 在內的任何字元,請使用象 '[.\n]' 的模式。

[...]

字元集合。匹配所包含的任意乙個字元。例如, '[abc]' 可以匹配 "plain" 中的 'a'。

[^...]

負值字元集合。匹配未包含的任意字元。例如, '[^abc]' 可以匹配 "plain" 中的'p'。

p1|p2|p3

匹配 p1 或 p2 或 p3。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 則匹配 "zood" 或 "food"。

*匹配前面的子表示式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等價於。

+匹配前面的子表示式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等價於 。

n 是乙個非負整數。匹配確定的 n 次。例如,'o' 不能匹配 "bob" 中的 'o',但是能匹配 "food" 中的兩個 o。

m 和 n 均為非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。

查詢name欄位中以'st'為開頭的所有資料:

mysql

>

select name from person_tbl where name regexp

'^st'

;

查詢name欄位中以'ok'為結尾的所有資料:

mysql

>

select name from person_tbl where name regexp

'ok$'

;

查詢name欄位中包含'mar'字串的所有資料:

mysql

>

select name from person_tbl where name regexp

'mar'

;

查詢name欄位中以母音字元開頭或以'ok'字串結尾的所有資料:

mysql

>

select name from person_tbl where name regexp

'^[aeiou]|ok$'

;

一 正規表示式基礎

正規表示式是一種用來匹配字串的強有力的 設計思想是用一種描述性的語言來給字串定義乙個規則,凡是符合規則的字串,就認為它 匹配 否則就不匹配。行定位符用來描述字串的邊界。表示行的開始,表示行的結束。例如 若要匹配以am開頭的字串,則是 am 若要匹配以am結尾的字串,則是am 其中 放在方括號裡,表示...

linux學習筆記 一 正規表示式

正規表示式就是處理字串的方法,並且是以行為單位進行字串處理的。通常在linux中,進行文字的 搜尋 替換 工作。正規表示式只是一種處理字串的標準表示方法,在linux中支援這種方法的工具有vi,sed,awk,grep等。正規表示式的特殊字元 regular expression字元 範例 含義 匹...

《Linux Shell》之一 正規表示式

bash的萬用字元 1.匹配單個字元,ls l aa?b.txt 2.匹配任意個字元 ls l aa b.txt 3.匹配中括號中的任意乙個字元 ls l aa trh b.txt,ls l aa a d b.txt 4.一組表示式,用逗號,隔開,只要滿足其中一條即可 ls l ls a 5.在中使...