當前位置:
首頁 > 最新 > 正則表達式思維導圖,不再難懂

正則表達式思維導圖,不再難懂

1

一張思維導圖

02

導圖內容解析

工具

RegexBuddy

語法結構

字元

[ab5@]

匹配"a"或"b"或"5"或"@"

[^abc]

匹配a、b、c之外的任意字元

[f-k]

匹配「f"到"k"之間的字元

[^A-F0-3]

匹配「A"-"F","0"-"3"之外的任意一個字元

d

任意一個數字,0~9

w

任意一個字母、數字、漢字或下劃線,A~Z、a~z、0~9、_和任意一個漢字

s

任意空白符,包括空格、製表符、換行符

.

小數點可以匹配任意一個字元,換行除外(如果要匹配包括"
"在內的所有字元,一般用[sS])

普通字元:字母、數字、漢字、下劃線,匹配與之相同的一個字元

簡單轉義字元:
(換行), (製表),\(本身)和 ^...(^等有特殊作用的符號如要匹配自己的話要用轉義)

標準字符集合

注意區分大小寫,大寫是相反的意思,匹配相反是不匹配

自定義字符集合

[ ]方括弧匹配方式,能夠匹配方括弧中的任意一個字元,^表示取反

量詞(Quantifier)

修飾前面的一個表達式,如果要修飾多個表達式,就用( )把表達式包起來

貪婪模式 (默認)

匹配符合的最長的字元串

非貪婪模式 (在量詞後面加 ? 例:? )

匹配符合的最短的字元串

表達式重複n次

表達式至少重複m次,最多重複n次

表達式至少重複m次

匹配表達式0或1次,相當於

+

表達式至少出現一次,相當於

*

表達式不出現或出現任意次,相當於

字元邊界

零寬:匹配的不是字元而是位置,符合某種條件的位置

^

與字元串開始的地方匹配

$

與字元串結束的地方匹配



匹配一個單詞的邊界,當前位置前面的字元和後面的字元不全是w

預搜索(零寬斷言、環視)

零寬:匹配的不是字元而是位置,符合某種條件的位置

(?=exp)

斷言自身出現的位置的後面能匹配表達式exp

(?!exp)

斷言自身出現的位置的後面不能匹配表達式exp

(?

斷言自身出現的位置的前面能匹配表達式exp

(?

斷言自身出現的位置的前面不能匹配表達式exp

匹配模式

對文本的處理方式

每行都是一個字元串

在多行模式下,如果需要僅匹配字元串開始和結束位置,可以使用A和

整個文本看作一個字元串,只有一個開頭一個結尾

使小數點"."可以匹配包含換行符(
)在內的任意字元

匹配時忽略大小寫

默認是區分大小寫的

IGNORECASE 忽略大小寫模式

SINGLELINE 單行模式

MULTILINE 多行模式

選擇符和分組

分支結構、捕獲組合非捕獲組

(1)、在被修飾匹配次數的時候,括弧中的表達式可以作為整體被修飾

(2)、取匹配結果的時候,括弧中的表達式匹配到的內容可以被單獨得到

(3)、每一對括弧會分配一個編號,使用()的捕獲根據左括弧的順序從1開始自動編號。捕獲編號為零的第一個捕獲是整個正則表達式模式匹配的文本

反向引用:通過反向引用,可以對分組已捕獲的字元串進行引用。

| 分支結構

左右表達式之間「或」關係,匹配左邊或右邊

( ) 捕獲組

(?:Expression) 非捕獲組

一些表達式中,不得不使用(),但又不需要保存()中子表達式匹配的內容,這時可以用非捕獲組來抵消()帶來的副作用。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 java思維導圖 的精彩文章:

Spring思維導圖,讓Spring不再難懂

TAG:java思維導圖 |