正規表示式的基本概念和語法

2021-07-09 03:39:20 字數 1924 閱讀 7863

正規表示式,又稱正規表示法、常規表示法(英語:regular expression,在**中常簡寫為regex、regexp或re),電腦科學的乙個概念。正規表示式使用單個字串來描述、匹配一系列符合某個句法規則的字串。

字母、數字、下劃線、漢字以及沒有特殊定義的標點符號,都是普通字元。表示式中的普通字元,在匹配乙個字串的時候,匹配與之相同的乙個字元。

能夠與『多種字元』匹配的表示式。

注意區分大小寫,大寫是取反的意思。例如\d表示任意乙個非數字字元。

點號.匹配任意乙個字元,但不包括\n。

方括號[ ]匹配方式,能夠匹配方括號中的任意乙個字元。

修飾匹配次數的特殊符號。

匹配次數中的貪婪模式:匹配字元越多越好,預設的模式。

字元邊界符號匹配的不是字元而是位置,符合某種條件的位置。

\b匹配這樣乙個位置:前面的字元和後面的字元不全是\w。

字元邊界符號是零寬的,它們不會占用(匹配)字元。

ignorecase:匹配時忽略大小寫。預設情況下,正規表示式區分大小寫。

singleline:單行模式,整個文字看作乙個字串,只有乙個開頭,乙個結尾。

multiline:多行模式,每行都是乙個字串,都有開頭和結尾。在指定了multiline之後,如果需要僅匹配字串開始和結束位置,可以使用\a和\z。

捕獲組:([a-z]),會將捕獲到的內容儲存到記憶體中。

非捕獲組:(?:[a-z]),不會將捕獲到的內容儲存到記憶體中,無法被反向引用所引用。

反向引用(\nnn):每一對()會分配乙個編號,使用()的捕獲根據左括號的順序從1開始自動編號。通過反向引用,可以對分組已捕獲的字串進行引用。

有如下內容:

goto  todo  gogo tototo dododo go12go12 go34to34

通過反向引用 ([a-z])\1 可以匹配到如下內容:

gogo toto dodo

通過反向引用 ([a-z])\1\1 可以匹配到如下內容:

tototo dododo

通過反向引用 ([a-z])([0-9])\1\2 可以匹配到如下內容:

go12go12

只進行子表示式的匹配,匹配內容不計入最終的匹配結果,是零寬度。

這個位置應該符合某個條件。判斷當前位置的前後字元,是否符合指定的條件,但不匹配前後的字元。是對位置的匹配。

正規表示式匹配過程中,如果子表示式匹配到的是字元內容,而非位置,並被儲存到最終的匹配結果中,那麼就認為這個子表示式是占有字元的;如果子表示式匹配的僅僅是位置,或者匹配的內容並不儲存到最終的匹配結果中,那麼就認為這個子表示式是零寬度的。占有字元還是零寬度,是針對匹配的內容是否儲存到最終的匹配結果中而言的。

有如下內容:

make loading going do

表示式\w+(?=ing)匹配所有以ing結尾的單詞:

load go

正規表示式基本概念

引用文字正規表示式是乙個描述字元模式的物件。主要用來驗證客戶端的輸入資料,使用者填寫完表單資訊提交後,就會傳遞給後台伺服器,伺服器會通過php等後台指令碼進行處理,因為客戶端驗證,節約了大量的伺服器資源,並提供了良好的使用者體驗。建立正規表示式有兩種方法 使用regexp構建函式接收兩個引數 乙個是...

正規表示式基本概念

正規表示式是乙個描述字元模式的物件。主要用來驗證客戶端的輸入資料,使用者填寫完表單資訊提交後,就會傳遞給後台伺服器,伺服器會通過php等後台指令碼進行處理,因為客戶端驗證,節約了大量的伺服器資源,並提供了良好的使用者體驗。建立正規表示式有兩種方法 使用regexp構建函式接收兩個引數 乙個是要匹配的...

正規表示式的基本概念

第一次寫部落格,記錄一下學習linux的過程啦 主要內容來自mooc上的 linux開發環境及應用 正規表示式可以用來描述乙個字串模式 可以匹配任意單字元 可匹配0次或任意多次 如 12 4 可以匹配124,1224,124 2的次數任意 a z 0 9 可以匹配a1,b65,e4657 數字次數任...