正規表示式高階

2022-09-05 10:36:12 字數 1355 閱讀 1350

捕獲組就是把正規表示式中子表示式匹配的內容,儲存到記憶體中以數字編號或手動命名的組裡,以供後面引用。

表示式

說明

(expression)

普通捕獲組,將子表示式expression匹配的內容儲存到以數字編號的組裡

(?expression)

命名捕獲組,將子表示式expression匹配的內容儲存到以name命名的組裡

普通捕獲組(在不產生歧義的情況下,簡稱捕獲組)是以數字進行編號的,編號規則是以「(」從左到右出現的順序,從1開始進行編號。通常情況下,編號為0的組表示整個表示式匹配的內容。

命名捕獲組可以通過捕獲組名,而不是序號對捕獲內容進行引用,提供了更便捷的引用方式,不用關注捕獲組的序號,也不用擔心表示式部分變更會導致引用錯誤的捕獲組。

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

表示式

說明

(?:expression)

進行子表示式expression的匹配,並將匹配內容儲存到最終的整個表示式的匹配結果中,但expression匹配的內容不單獨儲存到乙個組內

反向引用通常用來查詢重複的子串,或是限定某一子串成對出現。

表示式

說明

\1,\2

對序號為1和2的捕獲組的反向引用

\k

對命名為name的捕獲組的反向引用

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

環視按照方向劃分有順序和逆序兩種,按照是否匹配有肯定和否定兩種,組合起來就有四種環視。環視相當於對所在位置加了乙個附加條件。

表示式

說明

(?<=expression)

逆序肯定環視,表示所在位置左側能夠匹配expression

(?

逆序否定環視,表示所在位置左側不能匹配expression

(?=expression)

順序肯定環視,表示所在位置右側能夠匹配expression

(?!expression)

順序否定環視,表示所在位置右側不能匹配expression

正規表示式高階

或 的小細節 替換匹配 任一側最大的表示式 2.正規表示式和相應編碼 3.正規表示式引擎 舉例簡單說明nfa與dfa工作的區別 比如有字串this is yansen s blog,正規表示式為 ya msen nsen nsem 不要在乎表示式怎麼樣,這裡只是為了說明引擎間的工作區別 nfa工作方...

正規表示式高階話題

1.表示式的遞迴匹配 有時候,我們需要用正規表示式來分析乙個計算式中的括號配對情況。比如,使用表示式 或者 可以匹配一對小括號。但是如果括號 內還嵌有一層括號的話 如 則這種寫法將不能夠匹配正確,得到的結果是 類似情況的還有 html 中支援巢狀的標籤如 等。本節將要討論的是,想辦法把有巢狀的的成對...

grep正規表示式 高階

正規表示式只是字串的一種描述,只有和支援正規表示式的工具相結合才能進行字串處理。本文以grep為例來講解正規表示式。grep命令 功能 輸入檔案的每一行中查詢字串。基本用法 grep acinv color auto a n b n 搜尋字串 檔名 引數說明 a 將二進位制文件以文字方式處理 c 顯...