Java 正規表示式詳解

2021-07-26 14:33:24 字數 2506 閱讀 6249

1、什麼是正規表示式?

正規表示式的定義:這是一種字串的語法規則,是一種可以用於模式匹配和替換的規則,主要用於文字和字串的處理(匹配,查詢,替換,判斷字串)。乙個正規表示式是由普通的字元(a~z)以及特殊字元(元字元)組成的文字模式,用以描述在查詢文字主體時待匹配的乙個或多個字串。下面我們會介紹一些常用的元字元

2、正規表示式的元字元
元字元的定義:元字元:元字元使得正規表示式具有處理能力,指的是那些在正規表示式中具有特殊意義的專用字元,可以規定其前導字元在目標物件中的出現模式

元字元

在正規表示式中的寫法意義.

.任何乙個字元

\d\\d

0-9之間的任意乙個數字

\d\\d

任何乙個非數字字元

\s\\s

空格類字元』\t』,』\n』等等

\s\\s

非空格類字元

\w\\w

可用於識別符號的字元,不包括美元符

\w\\w

不能可用於識別符號的字元

\p\\p[lower]

小寫字母[a~z]

\p\\p

大寫字母[a~z]

\p\\p

ascii字元

\p\\p

字母\p

\\p數字字元[0~9]

\p\\p

字母或數字

\p\\p

標點符號

\p\\p

可視字元,\p,\p

\p\\p

可列印字元

\p\\p

空格或製表符

\p\\p

控制字元[\x00~\x1f\x7f]

上面的表中,基本上就是一些比較常用的元字元,我們需要注意元字元在正規表示式中的寫法,不能直接用元字元來編寫我們的正則程式

3、正規表示式中的方括號

元字元可以是放在中的任意單個字元(如[a]表示匹配單個小寫字元a),也可以是字串行(如[a-d]表示匹配a-d即a,b,c,d中的任意乙個字元,而\w表示任意英文本母、數字及下劃線)。例如:regex=」[159]abc」,那麼」1abc」,」5abc」,」9abc」都是與正規表示式regex匹配的字元,方括號的含義如下:

注:方括號內允許巢狀,可以進行交,並,差運算

方括號表示式

含義[abcde]

匹配a,b,c,d,e中的任意乙個字元

[a-h]

匹配a到h之間的任意乙個字元

[^fgh]

匹配除f,g,h外的任意乙個字元

[a-d[m-p]]

代表a~d,或m~p中的任意乙個字元(並)

[a-z&&[def]]

代表d,e或f中的任意乙個字串(交)

[a-z&&[^bc]]

代表a,d,e,f(差)

4、正規表示式中的限定符

在使用正規表示式時,我們知道元字元一般只能匹配乙個位置或乙個字元,如果需要某一型別的元字元多次輸入,逐個輸入,或是要匹配多個字元的時候就相當麻煩,這個時候我們可以使用正規表示式的限定符來重複輸入。例如:regex=」hello[246]?」,那麼」hello」,」hello2」,」hello4」,」hello6」都是與regex匹配的字串,下面是一些常見的限定符

帶限定符號的模式

含義x?

x出現0次或1次

x*x出現0次或多次

x+x出現1次或多次

xx出現n次

xx至少出現n次

xx至少出現n至m次

xyx後面跟y

x|yx或y

string regex="自己定義的正規表示式";

string test="需要正則的字串物件";

boolean ismatch=test.matches(regex);

if(ismatch)else

可能有些人會說,我經常用到的正規表示式中有patternmatcher兩個類,這兩個類是幹嘛的呢?

pattern: 乙個pattern是乙個正規表示式經編譯後的表現模式。

matcher: 乙個matcher物件是乙個狀態機器,它依據pattern物件做為匹配模式對字串展開匹配檢查。

首先乙個pattern例項訂製了乙個所用語法與perl的類似的正規表示式經編譯後的模式,然後乙個matcher例項在這個給定的pattern例項的模式控制下進行字串的匹配工作。

好了,上述就是前兩天啃書所獲得的經驗值,不得不說書還是個非常好的東西。

Java正規表示式詳解

正規表示式可以說是用來處理字串的一把利器,它是乙個專門匹配n個字串的字串模板,本質是查詢和替換。在例項演示之前先了解一下pattern matcher這兩個工具類.pattern 編譯好的帶匹配的模板 如 pattern.compile a z 取2個小寫字母 matcher 匹配目標字串後產生的結...

Java正規表示式詳解

表一顯示了表示匹配次數的符號,這些符號用來確定緊靠該符號左邊的符號出現的次數 假設我們要在文字檔案中搜尋美國的社會安全號碼。這個號碼的格式是999 99 9999。用來匹配它的正規表示式如圖一所示。在正規表示式中,連字元 有著特殊的意義,它表示乙個範圍,比如從0到9。因此,匹配社會安全號碼中的連字符...

Java正規表示式

正規表示式結構簡介 字元 x 字元 x 反斜槓 0n 十進位制數 0 n 7 0nn 十進位制數 0nn 0 n 7 0mnn 十進位制數 0mnn 0 m 3,0 n 7 xhh 十六進製制數 0xhh uhhhh 十六進製制數 0xhhhh t 製表符 u0009 n 換行符 u000a r 回...