正規表示式的語法規則

2021-09-20 14:05:54 字數 2791 閱讀 7813

一、行定位符(^和$)

行定位符就是用來描述字串的邊界。「^」表示行的開始;「$」表示行的結尾。如:

^tm : 該表示式表示要匹配字串tm的開始位置是行頭,如tm equal tomorrow moon就可以匹配

tm$ : 該表示式表示要匹配字串tm的位置是行尾,tomorrow moon equal tm匹配。

如果要匹配的字串可以出現在字串的任意部分,那麼可以直接   寫成 :tm

二、單詞定界符(\b、\b)

單詞分界符\b,表示要查詢的字串為乙個完整的單詞。如:\btm\b

還有乙個大寫的\b,意思和\b相反。它匹配的字串不能是乙個完整的單詞,而是其他單詞或字串的一部分。如:\btm\b

三、字元類([ ])

正規表示式是區分大小寫的,如果要忽略大小寫可使用方括號表示式「」。只要匹配的字元出現在方括號內,即可表示匹配成功。但要注意:乙個方括號只能匹配乙個字元。例如,要匹配的字串tm不區分大小寫,那麼該表示式應該寫作如下格式:[tt][mm]

posix風格的預定義字元類如表所示:

四、選擇字元(|)

還有一種方法可以實現上面的匹配模式,就是使用選擇字元(|)。該字元可以理解為「或」,如上例也可以寫成 (t|t)(m|m),該表示式的意思是以字母t或t開頭,後面接乙個字母m或m。

使用「」和使用「|」的區別在於「」只能匹配單個字元,而「|」可以匹配任意長度的字串。如果不怕麻煩,上例還可以寫為 :tm|tm|tm|tm

五、連字元(-)

變數的命名規則是只能以字母和下劃線開頭。但這樣一來,如果要使用正規表示式來匹配變數名的第乙個字母,要寫為 :[a,b,c,d…a,b,c,d…]

這無疑是非常麻煩的,正規表示式提供了連字元「-」來解決這個問題。連字元可以表示字元的範圍。如上例可以寫成 :[a-za-z]

六、排除字元([^])

上面的例子是匹配符合命名規則的變數。現在反過來,匹配不符合命名規則的變數,正規表示式提供了「^」字元。這個元字元在前面出現過,表示行的開始。而這裡將會放到方括號中,表示排除的意思。

例如:[^a-za-z],該表示式匹配的就是不以字母和下劃線開頭的變數名。

七、限定符(? * + )

對於重複出現字母或字串,可以使用限定符來實現匹配。限定符主要有6種,如表所示:

八、點號字元(.)

點字元(.)可以匹配出換行符外的任意乙個字元

注意:是除了換行符外的、任意的乙個字元。如匹配以s開頭、t結尾、中間包含乙個字母的單詞。

格式如下: ^s.t$,匹配的單詞包括:sat、set、sit等。

再舉乙個例項,匹配乙個單詞,它的第乙個字母為r,第3個字母為s,最後乙個字母為t。能匹配該單詞的正規表示式為:^r.s.*t$

九、轉義字元(\)

正規表示式中的轉移字元(\)和php中的大同小異,都是將特殊字元(如「.」、「?」、「\」等)變為普通的字元。舉乙個ip位址的例項,用正規表示式匹配諸如127.0.0.1這樣格式的ip位址。如果直接使用點字元,格式為:[0-9](.[0-9])

這顯然不對,因為「.」可以匹配乙個任意字元。這時,不僅是127.0.0.1這樣的ip,連127101011這樣的字串也會被匹配出來。所以在使用「.」時,需要使用轉義字元(\)。修改後上面的正規表示式格式為: [0-9](\.[0-9])

十、反斜線(\)

除了可以做轉義字元外,反斜線還有其他一些功能。反斜線可以將一些不可列印的字元顯示出來,如表所示:

還可以指定預定義字符集,如表所示:

反斜線還有一種功能,就是定義斷言,其中已經了解過了\b、\b,其他如表所示:

一、括號字元(())

小括號字元的第乙個作用就是可以改變限定符的作用範圍,如「|」、「*」、「^」等。來看下面的乙個表示式。

(thir|four)th,這個表示式的意思是匹配單詞thirth或fourth,如果不使用小括號,那麼就變成了匹配單詞thir和fourth了。

小括號的第二個作用是分組,也就是子表示式。如(\.[0-9]),就是對分組(\.[0-9])進行重複操作。後面要學到的反向引用和分組有著直接的關係。

二、反向引用

三、模式修飾符

模式修飾符的作用是設定模式。也就是規定正規表示式應該如何解釋和應用。

不同的語言都有自己的模式設定,php中的主要模式如表所示:

正規表示式的語法規則

正規表示式通常包含字母文字 literal text 和元字元 metacharacter 字母文字指的是普通文字如 abcde 可匹配字串中任何包含 abcde 的字串。元字元則更加靈活運用通用的表示式匹配所有符合此表示式規律的字串。一 匹配單個字元 從中選擇乙個字元匹配 中間支援的型別 單詞字元...

正規表示式之語法規則

正規表示式 描述在搜尋文字正文時要匹配的乙個或多個字串。該表示式可用作乙個將字元模式與要搜尋的字串相匹配的模板。正規表示式包括普通字元 例如,a 到 z 之間的字母 和特殊字元 稱為 元字元 特殊字元 元字元下表包含了多字元元字元的列表以及它們在正規表示式中的行為。元字元 行為 示例 b 與乙個字邊...

C 正規表示式語法規則詳解

字母文字指的是普通文字如 abcde 可匹配字串中任何包含 abcde 的字串。元字元則更加靈活運用通用的表示式匹配所有符合此表示式規律的字串。c 正規表示式語法一 匹配單個字元 從中選擇乙個字元匹配 中間支援的型別 單詞字元 ae 非單詞字元 字母範圍 a z 數字範圍 0 eg.正規表示式 ae...