正規表示式快速入門

2021-06-27 18:15:56 字數 2930 閱讀 9032

一  元字元 ^, $, ., \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 電腦科學的乙個概念。...