正則表達(dá)式是一種窺視字符串結(jié)構(gòu)的語法規(guī)則,是一個特定的格式化模式重付,可以匹配顷级、替換、截取匹配的字符串确垫。
^?? 表示行的開始
$?? 表示行的結(jié)束
如:
^tm? 表示的是以tm開頭的一個行 弓颈,tm query is correct
tm$? 則匹配的是 ,?? query is correct by tm
tm?? 則以上兩者都可以匹配
正則表達(dá)式是區(qū)分大小寫的帽芽,忽略大小寫則需要“[]”。
如翔冀,我需要匹配一個tm字符串导街,不區(qū)分大小寫,則格式是:
[Tt][Mm]
類似程序開發(fā)中的“或”纤子。同樣搬瑰,需要匹配一個tm字符串,不區(qū)分大小寫控硼。還可以寫為:
t|Tm|M
如果需要匹配一個字母泽论,寫為[a,b,c,d,e,f,g,…A,B,C,D,E,F,G….]會很繁瑣也會很累。
使用連字符則表示一定范圍的意思象颖,則字母就可以寫為:
[a-zA-Z]
匹配不符合規(guī)則的變量佩厚,類似取反的意思。
[^a-zA-Z]
表示的是匹配不以字母和下劃線開頭的變量名
限界符
說明
Demo
?
匹配前面的字符零次或一次
colou?r? , 可以匹配colour 或 color
+
匹配前面的字符一次或多次
Go+gle?? , 匹配 gogle 到 go…gle
*
匹配前面的字符零次或多次
go*gle?? , 匹配 ggle 到 go…gle
{n}
匹配前面的字符n次
go{2}gle? , 只匹配 google
{n,}
匹配前面的字符至少n次
go{2,}gle? , 匹配 google 到 go…gle
{n,m}
匹配前面的字符至少n次,最多m次
go{0,2}gle? , 匹配 ggle , gogle? , google
匹配除換行符外的任意一個字符
說明
表達(dá)式
Demo
匹配以s開頭说订、t結(jié)尾抄瓦、中間包含一個字母的單詞
^s.t$
sat、set陶冷、sit
匹配第一個字符時r钙姊,第三個是s,最后一個是t的字符
^r.s.*t$
rast埂伦、risat煞额、restet
你沒猜錯,和我們平時的計算式中括號的作用一樣沾谜,改變計算的優(yōu)先級
如膊毁,
(fa|mo)ther
先匹配的是括號內(nèi)的|,再匹配括號外的基跑。匹配的單詞為:father婚温,mother
如“.”,“媳否?”栅螟,“\”等字符已經(jīng)有了自己的特殊含義,如果想使用本身的字符含義則需要在字符前加一個“\”來轉(zhuǎn)義篱竭。
比如我們要匹配這么一個IP地址127.0.0.1
[0-9]{1,3}(\.[0-9]{1,3}){3}
表示預(yù)定義字符集
預(yù)定義字符
說明
\d
任意一個十進(jìn)制數(shù)力图,相當(dāng)于[0-9]
\D
任意一個非十進(jìn)制數(shù)
\s
任意一個空白字符(空格、換行符掺逼、換頁符吃媒、回車、制表),即[\f\t\r\n]
\S
任意一個非空白字符
\w
任意一個單詞字符,相當(dāng)于[a-zA-Z0-9_]
\W
任意一個非單詞字符
定義斷言的限定符
限定符
說明
\b
單詞定界符,用來匹配字符串中的某些位置
\B
非單詞定界符序列
\A
總是能夠匹配帶搜索文本的起始位置
\Z
表示在未指定任何模式下的匹配的字符晓折,通常是字符串的末尾位置
\z
子匹配字符串的末尾惑朦,而不考慮任何的換行符
\G
當(dāng)前匹配的起始位置