一 元字元 ^, $, ., \w, \s, \b, \d
1.後面四個有相應的大寫,表反義。
^:匹配行開頭,只有當其在
「[ ]」
中表示「非」
2.\b :匹配單詞的開始或結束,而
「.」匹配除換行符外的任意字元。
eg: ^.$:匹配乙個非空行;
\bstr : 匹配
str開頭的字串
二 重複 * , + , ? ,
請叫上面四位為「
四大金剛
」~* :
0個或多個;
+ :1個或多個;
?:0個或1個;
{}有三種寫法,{n},{n,}和{n,m},不贅述了~
注意:?在四種情況下為懶惰匹配
分別是在*,?,+,{}後面
eg:a.*
b,匹配aabab,而a.*?
b匹配aab和ab
三 「」表示字元類,就是裡面只能選擇其中的乙個字元進行匹配
a[\w]c 可以匹配
akc等;
a[\\w]c 可以匹配
a\c或
awc或
akc等
「\\w
」表示「
\」和任意的單詞
(\w)
高階總結:
也就是說在「
」內,「
.」 ,「
*」,「?」和「
{}」都表示本身,沒有任何特殊的含義。因為「
」裡面是字元類啊!只能是乙個個字元組成!像以上四種都不能惟一確定是乙個字元(他們有的是
0個或是多個),故在
內錶是本身,無特殊含義。然而,像
\w,\d
等,只能表示乙個字元(如
\d表示
0~9中的任何乙個數字),他們在
中有著元字元本身的含義,而像前面所說的「四大金剛」都已蛻化成本身了
~~ 此外,「-」在「
」中表示字元的範圍,如
[0-6]
表示0~6
的任意乙個數字。
四 轉義
一言以蔽之:「四大金剛」,外加一些特殊含義的字元如:^,$,\.)
匹配「1~3
個數字,並且重複
3次」,
31.23.432
之類的
注意:這裡再次說明「
」與「( )
」的區別,前者稱為字元類,匹配其內的單個字元,侯澤華稱為分組,匹配多個字元。前者只匹配
[ ]中的乙個!後者要匹配括號中的所有。因此,不能有
[\d(ab)?]
之類的東西出現。
七 反向引用(後向引用)
用於重複搜尋前面某個分組匹配的文字(該文字已**獲,等待後面引用),組的序號或是名字標明,預設自動分配時按數字來標示,並且從1
開始。如:\b(\w+)\b\s+\1\b
可以匹配兩個相同的單詞的字串,並且兩個單詞之間有乙個或多個空格,如
try try
等也可以自己指定組名(.net framework
下支援)
格式:(?<
組名》原有基礎)或是
(?』組名』原有基礎)
對於自定義的組名要用 \k<
組名》來引用。如
1 :\b(\w)(\d)\1\2\b:
預設命名,可以匹配
h1h1
,但不能匹配
h1d2,\1
就是代表前面被
(\w)
捕獲的內容!
2 :\b(?\w+)\b\s+\k\b
,在.net framework
下支援
八 零寬斷言
用於查詢在某些內容(但並不包括這些內容)之前或之後的東西,再讀一遍上面的,我肯定你現在還沒弄清楚,要不再讀一遍。。。(別打我~
)1. (?=exp): 零寬度正**先行斷言(死去吧,這麼難記住,不記了!算了,記一下吧,以後裝逼。。)它斷言自身出現的位置的後面能匹配表示式exp
,然後整個
(?=exp)
就是個條件!只有滿足這個條件才能進行匹配。
如: i like singing and dancing. \b\w+(?=ing\b)
可以匹配
sing
和danc
。注意,如果寫成 \b\w+(?=ing)\b則沒有匹配項。
再來理解一遍:(?=ing\b)
表示的是在這個表示式的位置處應該是以「
ing」結尾的單詞。注意的是,整個
(?=exp)
沒有代表任何東西!你要找以「
ing」結尾的單詞的前半部分,就要用
\w+來匹配!
2. (?<=exp)表示自身位置的前面唄
~(啥,你說你想知道它的名字。。受不了,它叫。。零寬度正回顧後發斷言。。很好記吧)
如:(?<=\bwa)\w+\b i』m watching tv! 匹配
ching
八.5
負向零寬度斷言
和零寬度斷言相對應,如果表示「沒有exp
」,則進行其前面或後面內容的匹配。
1. (?!exp) 如
\d(?!\d) 匹配3
個數字(條件是這
3個數字後面不能是數字)
2. (?如
\b((?!abc)\w+\b
匹配不包含連續字串
abc的單詞。
高階總結:八和八.5
如何總結呢?
能 = ‚ 前面 <
ƒ 不能 !
④ 後面 無
另外這四種前面都是以?
開頭的哦!
考考你,匹配該位置前面不能有數字咋寫?
首先:?
其次:「前面」: <
再次:「不能有」: !
因此:....(?
正規表示式快速入門
你是不是經常忘記正規表示式中的語法規則 優先順序順序 界定符 定位符等等,每次看了忘忘了看,怎麼辦的,多練習或者小抄本記起來!1 常用元字元 匹配處換行符以外的任意字元 w匹配字母或數字或下劃線或漢字 s匹配任意的空白符 d匹配數字 b匹配單詞的開始或結束 匹配字串的開始 匹配字串的結束 2 常用限...
正規表示式快速入門
匹配除了換行符以外的任何字元 w 匹配字母或數字或下劃線或漢字 s 匹配任意的空白符 d 匹配數字 b 匹配單詞的開始或結束 匹配字串的開始 匹配字串的結束 匹配除了換行符以外的任何字元,算是 w 的加強版了 w 不能匹配 空格 如果把字串加上空格用 w 就受限了,看下用 如何匹配字元 b hj 4...
快速入門正規表示式
本文是一篇正則的快速入門教程,並未涉及分組 反義 後向引用 貪婪懶惰等高階內容,旨在可以快速學會如何去理解那些常見的正規表示式 一 前言 1.1 何為正規表示式 正規表示式,又稱規則表示式。英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。...