正規表示式 學習筆記

2021-10-09 03:55:40 字數 2724 閱讀 7580

正規表示式(regular expression)是為了字串模式匹配,從而實現搜尋和替換功能的一種用來描述規則的表示式。

單個字元(一對一匹配)

最簡單的正規表示式可以由簡單的數字和字母組成,沒有特殊的語義,純粹就是一一對應的關係。即正規表示式被用來篩選匹配的字元只有乙個。如果本來這個字元不是特殊字元,使用轉移符號就會讓它擁有特殊的含義。

特殊字元

正規表示式是

記憶方式

換行符\n

new line

換頁符\f

form feed

回車符\r

return

空白符\s

space

製表符\t

tab

多個字元(一對多匹配)

引入集合區間和萬用字元實現一對多的匹配。在正規表示式裡,集合的定義方式是使用中括號和元字元。即使有了集合和區間的定義方式,如果同時匹配多個字元也還是需要一一枚舉,這是低效的,所以在正規表示式裡衍生了一批用來同時匹配多個字元的簡便正規表示式。

區間匹配

正規表示式

記憶方式

除了換行符之外的任何字元

.句號,除了句子結束符

單個數字,[0-9]

\ddigit

除了[0-9]

\dnotdigit

包括下劃線在內的單個字元,[a-za-z0-9_]

\wword

非單字字元

\wnotword

匹配空白字元,包括空格、製表符、換頁符和換行符

\sspace

匹配非空白字元

\snotspace

迴圈與重複(多個字元的匹配)

同時匹配多個字元,實現多個字元的匹配,需要多次迴圈,重複正則規則即可,根據迴圈次數的多少,可以分為0次、1次、多次和特定次。

想要匹配color和colour這兩個單詞,就需要同時保證u這個字元是否出現都能被匹配到,所以正規表示式為:

/colou?r/

a匹配3次表示為:

/a/語法規則:

在長文字字串查詢過程中,需要限制查詢的位置。

單詞邊界(\b)

單詞是構成句子和文章的基本單位,乙個常見的使用場景時把文章或句子中的特定單詞找出來。

在句子「the cat scattered his food all over the room」中想找cat這個單詞,如果使用/cat/這個正則,就會同時匹配到cat和scattered這兩個單詞。如果使用邊界正規表示式\b,其中b是boundary的首字母。在正則引擎裡它其實匹配的是能構成單詞的字元(\w)和不能構成單詞的字元(\w)中間的那個位置。

/\bcat\b/

字串邊界

邊界和標誌

正規表示式

記憶方式

單詞邊界

\bboundary

非單詞邊界

\bnotboundary

字串開頭

^

\hat{}

^字串結尾

$多行模式

mmultiple

忽略大小寫

iignore

全域性模式

gglobal

通過巢狀遞迴和自身引用可以讓正則發揮更強大的功能。從簡單到複雜的正規表示式演變通常要採用分組、回溯引用和邏輯處理的思想。利用這三種規則,可以推演出無限複雜的正規表示式。

分組小括號元字元所包含的正規表示式被分為一組,每乙個分組都是乙個子表示式,它是構成高階正規表示式的基礎,如果只是使用簡單的(regex)匹配語法本質上和不分組是一樣的,如果要發揮它強大的作用,需要結合回溯引用方式。

回溯引用

回溯引用(backreference)指的是模式的後面部分引用前面已經匹配到的子字串。回溯引用的語法\1表示引用第乙個子表示式,\0表示整個表示式。

匹配兩個連續相同的單詞

hello what what is the first thing, and i am am 007.

\b(\w+)\s\1

前向查詢

前向查詢(lookahead)是用來限制字尾的。凡是以(?=regex)包含的子表示式在匹配過程中都胡用來限制前面的表示式的匹配。

後向查詢

後向查詢是前向查詢的反向操作,後向查詢(lookbehind)是通過指定乙個子表示式,然後從符合這個子表示式的位置出發開始查詢符合規則的字串。

方法二:/(?

邏輯關係

正則元字元

與預設都是與的關係

非[ ^

\hat{}

^ regex](^

\hat{}

^必須與一起使用才表示非)和!或∣

\mid

∣【參考資料】

正規表示式不要背

正規表示式學習筆記

正規表示式學習日記 1 為萬用字元,表示任何乙個字元,例如 a.c 可以匹配 anc abc acc 2 在內可以指定要求匹配的字元,例如 a nbc c 可以匹配 anc abc acc 但不可以匹配 ancc a到z可以寫成 a z 0到9可以寫成 0 9 3 數量限定符號,表示匹配次數 或者叫...

正規表示式學習筆記

字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

正規表示式學習筆記

1.正規表示式是可用於在乙個檔案或字元裡查詢和替代文字的一種標準。它具有兩種標準 基本的正規表示式 bre 擴充套件的正規表示式 ere ere包括bre功能和另外其它的概念。2.表示或運算 3.匹配任何單個字元 4.匹配任何中包含的單個字元,如 張王李 三,匹配張 三 王三,李三 5.將排除 後跟...