正規表示式解析

2021-07-03 21:54:00 字數 1325 閱讀 8550

正規表示式,又稱正規表示式,常規表示式,是使用單個字串來描述.匹配一系列符合某個句法規則的字串,在很多文字編輯器中,正規表示式通常被用來檢索.替換那些符合某個模式的文字.

正規表示式的語法可以自行搜尋,通常分為一下幾個方面:

1>字元

可以使用普通字元匹配,例"a"

使用預定義字元表示給定範圍中的某個字元,"\d"表示匹配0~9中的任意乙個數字字元.

使用 [ ] 給出自定義的範圍,[a-z0-9]表示匹配a~z或數字0~9的某乙個字元.

2>量詞

有時候需要指定某個字元或組可以出現的次數,這時就要使用量詞

"*" 表示指定的字元或組可以出現任意的次數(包括不出現)

"+" 表示指定的字元或組至少要出現一次

"?" 表示指定的字元或組最多出現一次,或者根本就沒有.

"", "", "" 表示指定的字元或組必須出現n次,可以出現m~n次,最少出現n次,例"ca"表示由三個c開頭後面跟2個或3個a.

3>邊界符

進行匹配時,邊界符不會匹配任何字元,只代表邊界.不可以將邊界符理解為不可見字元,不可見字元是有內容的只是不可見而已;邊界符不對任何字元匹配,只代表某個臨界點

" ^ " 與" $ "分別表示的是字串開始和結束的位置,一般用來匹配整個字串. 例"^a*$"表示任意個a組成的字串

" \b "表示的是單詞的邊緣,在要求匹配的內容是整個單詞而不是單詞的一部分時,\b就派上用場了

4>匹配次數的貪婪與非貪婪

貪婪模式下進行匹配時,將按照最大限度的可能進行匹配.

非貪婪模式是在匹配時按照最小限度的可能進行匹配

對abbbabbba進行匹配時,  " a[\w]+a"匹配時會按照貪婪模式進行匹配,結果為;abbbabbba    " a[\w]+?a"則會按照非貪婪模式進行匹配,結果為:abbba

5>分組以及分組引用

( ) 和 " \n "可以進行分組

pattern與matcher類:

pattern類的物件用來表示通過編譯的正規表示式,利用該類物件可以與任意字串進行模式匹配( pattern類的構造器是private的,不能通過呼叫構造器建立物件,需要呼叫pattern類提供的靜態工廠方法獲得物件  pattern = pattern.compile("(ab)+",pattern.case_insensitive+pattern.unicode_case); pattern中有許多標誌常量,多個標誌常量可用+進行連線)

matcher類,該類物件表示將要進行模式匹配的字串或字串行,同樣,matcher類物件夜不能通過呼叫構造器獲得,需要通過pattern物件中的matcher方法得到.有了matcher物件可以呼叫相關方法進行匹配和替換.

正規表示式解析

string finalsql table23 select from table where id 10 matcher m pattern.compile a za z w a za z matcher finalsql if m.find 正規表示式實現的功能是實現分組,將finalsql的左...

正規表示式解析

string finalsql table23 select from table where id 10 matcher m pattern.compile a za z w a za z matcher finalsql if m.find 正規表示式實現的功能是實現分組,將finalsql的左...

正規表示式語法解析

正規表示式語法解析 頭匹配 front表示以 front 開頭的字串。二 尾匹配 tail 表示以 tail 結尾的字串。三 轉義序列 所有轉義序列都用 打頭。如 在表示式中都有特殊意義,所以在正規表示式中也用 來表示。四 字元簇 a z 匹配小寫字元 a z 匹配寫字元 a za z 匹配所有字元...