正規表示式

2021-10-02 19:47:58 字數 2138 閱讀 3900

字元描述\

轉義字元,將下乙個字元轉義

^表示從字串的開頭進行匹配

$匹配到字串的結尾

*表示前面的子表示式出現0次或者多次

+表示前面的子表示式出現一次或者多次

?表示前面的子表示式出現0次或者一次

表示前面的子表示式至少出現n次,至多出現m次

表示前面的子表示式出現n次

表示前面的子表示式至少出現n次

(pattern)

捕獲功能,匹配到的結果可以直接獲取

[xyz]

字元集合。匹配所包含的任意乙個字元。

[^xyz]

負值字元集合。匹配未包含的任意字元

[a-z]

字元範圍。匹配指定範圍內的任意字元。例如,』[a-z]』 可以匹配 『a』 到 『z』 範圍內的任意小寫字母字元。

[^a-z]

負值字元範圍。匹配任何不在指定範圍內的任意字元。例如,』[^a-z]』 可以匹配任何不在 『a』 到 『z』 範圍內的任意字元。

\d匹配乙個數字字元,等價與[0-9]

\d匹配乙個非數字字元

\w匹配乙個單詞字元,等價於[a-za-z0-9]

\w匹配乙個非單詞字元

\b匹配乙個單詞邊界,如『ver\b』中的後三個字元單詞never

\b匹配乙個非單詞邊界,如『ver\b』可以匹配單詞verb

public

void

funa()

";pattern pattern = pattern.

compile

(patternstring)

; matcher matcher = pattern.

matcher(""

);if(matcher.

find()

)}

在正規表示式中,小括號出了表示乙個整體外,還具有捕獲的功能,即使用小括號提取符合其內部表示式的功能,例如使用()提取身份證號的後四位。

public

void

fun3()

((\\d)|(\\dx))$"

;// string patternstring ="^\\d(\\d[\\d|x])$";

pattern pattern = pattern.

compile

(patternstring)

; matcher matcher = pattern.

matcher

("12345619900202443x");

if(matcher.

find()

)}

使用group()加上id獲顯示捕獲結果.group(0)顯示整個正規表示式的結果,1表示第乙個,2表示第二個,以此類推。括號巢狀時,從外往裡計數。

如果使用小括號時,不想使用捕獲功能,可以使用「(?:***)」,表示括號內冒號後的內容不是乙個捕獲組。

預設情況下,下面這些表示式會盡可能多的匹配內容。在這些表示式後面加上?,可以進入非貪婪模式。

表示式含義

x?x,一次或一次也沒有

x*x,零次或多次

x+x,一次或多次

xx,恰好 n 次

xx,至少 n 次

xx,至少 n 次,但是不超過 m 次

非貪婪模式會盡可能的少匹配。

public

void

fun3()

matcher matcher2 = pattern2.

matcher

("1231231233");

if(matcher2.

find()

)}

正規表示式從左到右進行計算,並遵循優先順序順序,這與算術表示式非常類似。

相同優先順序的從左到右進行運算,不同優先順序的運算先高後低。下表從最高到最低說明了各種正規表示式運算子的優先順序順序:

運算子描述

\轉義符

(), (? : ), (?=),

圓括號和方括號

*, +, ?, , ,

限定符^, $, \任何元字元、任何字元

定位點和序列(即:位置和順序)

替換,"或"操作。字元具有高於替換運算子的優先順序,使得"m

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...