欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql中正則表達(dá)式Regexp常見用法及說明

 更新時(shí)間:2022年12月12日 10:32:34   作者:數(shù)據(jù)分析師之家  
這篇文章主要介紹了Mysql中正則表達(dá)式Regexp常見用法及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。

Mysql中Regexp常見用法

模糊匹配,包含特定字符串

# 查找content字段中包含“車友俱樂部”的記錄
select * from club_content where content regexp '車友俱樂部'

# 此時(shí)的regexp與like的以下用法是等同的
select * from club_content where content like '%車友俱樂部%'

模糊匹配,以特定字符串開頭

# 查找content字段中以“車友”開頭的記錄
select * from club_content where content regexp '^車友'

# 此時(shí)的regexp與like的以下用法是等同的
select * from club_content where content like '車友%'

模糊匹配,以特定字符串結(jié)尾

# 查找content字段中以“車友”結(jié)尾的記錄
select * from club_content where content regexp '車友$'

# 此時(shí)的regexp與like的以下用法是等同的
select * from club_content where content like '%車友'

模糊匹配,或關(guān)系

# 查找content字段中包含“心得”、“分享”或“技術(shù)貼”
select * from club_content where content ?REGEXP '心得|分享|技術(shù)貼'

模糊匹配,不包含單個(gè)字符

# 查找content字段中不包含“車”字、“友”字的記錄
select * from club_content where content ?REGEXP [^車友]

這個(gè)結(jié)果跑出來一看大吃一驚,竟然把所有記錄給跑出來,這是為什么呢?

因?yàn)橐坏┘恿诉@個(gè)方括號(hào)"[]",它就把里面的內(nèi)容拆成單個(gè)的字符再匹配,它會(huì)逐個(gè)字符去匹配判斷是不是等于“車”,或者是不是等于“友“,返回的結(jié)果是一組0、1的邏輯值。

如果想匹配不包含特定字符串,該怎么實(shí)現(xiàn)呢?

模糊匹配,不包含特定字符串

# 查找content字段不包含“車友”字符串的記錄
select * from club_content where content not REGEXP '車友'

Regexp關(guān)鍵字及正則表達(dá)式的常用通配符

在Mysql中使用Regexp關(guān)鍵字來指定正則表達(dá)式的匹配內(nèi)容。

語法:

字段 regexp ‘匹配字符’;

MySQL中使用 REGEXP 操作符來進(jìn)行正則表達(dá)式匹配。根據(jù)正則表達(dá)式的規(guī)則,用來查詢或者替換符合指定要求的內(nèi)容。

–select <字段> from 表 where <字段> REGEXP '通配符/字符';

通配符說明例子
^匹配輸入字符串的開始位置。如果設(shè)置了 RegExp 對(duì)象的 Multiline 屬性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置'^b’匹配以字母 b 開頭的字符串
$匹配文本的結(jié)束字符,如果設(shè)置了 RegExp 對(duì)象的 Multiline 屬性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置‘st$’ 匹配以 st 結(jié)尾的字符串
.匹配除 “\n” 之外的任何單個(gè)字符。要匹配包括 ‘\n’ 在內(nèi)的任何字符,請(qǐng)使用像 ‘[.\n]’ 的模式。‘b.t’ 匹配任何 b 和 t 之間有一個(gè)字符
|或,多匹配符鏈接‘z|food’ 能匹配 “z” 或 “food”。’(z|f)ood’ 則匹配 “zood” 或 “food”。
*匹配零個(gè)或多個(gè)在它前面的字符zo* 能匹配 “z” 以及 “zoo”。* 等價(jià)于{0,}
+匹配前面的字符/子表達(dá)式 1 次或多次‘ba+’ 匹配以 b 開頭,后面至少緊跟一個(gè) a;‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等價(jià)于 {1,}。
<字符串>匹配包含指定字符的文本‘fa’ 匹配包含‘fa’的文本
[字符集合]匹配字符集合中的任何一個(gè)字符‘[ar]’ 匹配 a 或者 r。
[^]負(fù)值字符集合; 匹配不包含在括號(hào)中的任何字符‘[^abc]’ 匹配任何不包含 a、b 或 c 的字符串
字符串{n,}n 是一個(gè)非負(fù)整數(shù).匹配前面的字符串n 次‘e{2}’ 匹配 2 個(gè)或多個(gè)的 e, 例如:feed
字符串 {n,m}m 和 n 均為非負(fù)整數(shù),其中n <= m。匹配前面的字符串 n至 m 次‘b{2,4}’ 匹配最少 2 個(gè),最多 4 個(gè),例如baby

示例:

#匹配符合要求的多個(gè)字符/字符串
--字符*和+都可以匹配多個(gè)該符號(hào)之前的字符。不同的是,,而*可以表示 0 個(gè)字符。
'--select <字段> from 表 where   <字段> REGEXP  '字符1+'; '--+結(jié)果匹配‘字符1'一次或多次
--select <字段> from 表 where   <字段> REGEXP  '^字符1*'; --匹配‘字符1' 0次或多次
#匹配指定的字符/字符串,需要匹配多個(gè)的場(chǎng)合,使用‘|'分號(hào)隔開。
'--select <字段> from 表 where   <字段> REGEXP  '字符1|字符2|字符3*'; 
#查詢以特定字符或字符串開頭的數(shù)據(jù)
'--select <字段> from 表 where   <字段> REGEXP  '^字符';
#匹配指定字符以外的字符
'--select <字段> from 表 where   <字段> REGEXP  '[^字符1~字符3]*'; 
#查詢以特定字符或字符串結(jié)尾的數(shù)據(jù)
'--select <字段> from 表 where   <字段> REGEXP  '字符$';
#替代字符串中的任意一個(gè)字符,例如:a.b =acb,adb
'--select <字段> from 表 where   <字段> REGEXP  '字符1.字符2';
'#查詢可以匹配指定字符串中的任意一個(gè)字符的字符串
'--select <字段> from 表 where   <字段> REGEXP  '[字符1字符2字符3]*'; 
'#查詢陪陪指定集合的區(qū)間內(nèi)容的數(shù)據(jù)
#[a-z]”表示從 a~z 的所有字母;“[0-9]”表示從 0~9 的所有數(shù)字;
“[a-z0-9]”表示包含所有的小寫字母和數(shù)字;“[a-zA-Z]”表示匹配所有字符。
'--select <字段> from 表 where   <字段> REGEXP  '[字符1~字符3]*'; 
#使用{n,}或者{n,m}來指定字符串連續(xù)出現(xiàn)的次數(shù)
'--select <字段> from 表 where   <字段> REGEXP  '匹配的字符{匹配次數(shù),}*'; 
例: --billy,silaly,tilly 
'--select  name from  namestd where name  regexp 'l{2,};
'--select <字段> from 表 where   <字段> REGEXP  '匹配的字符{匹配次數(shù)1,匹配次數(shù)2}'; 
'例:--LiMing,Lily,LiPingPing  匹配字母“i” 一至三次
'--select  name from  namestd where name  regexp 'i{1,3}; 

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論