python 正規表示式 使用圓括號指定分組

2021-08-21 16:18:40 字數 1095 閱讀 6526

當使用正規表示式時,一對圓括號可以實現以下任意乙個(或者兩個)功能:

• 對正規表示式進行分組;

• 匹配子組。

關於為何想要對正規表示式進行分組的乙個很好的示例是:當有兩個不同的正規表示式 而且想用它們來比較同乙個字串時。另乙個原因是對正規表示式進行分組可以在整個正則 表示式中使用重複操作符(而不是乙個單獨的字元或者字符集)。 使用圓括號進行分組的乙個***就是,匹配模式的子字串可以儲存起來供後續使用。 這些子組能夠被同一次的匹配或者搜尋重複呼叫,或者提取出來用於後續處理。

為什麼匹配子組這麼重要呢?主要原因是在很多時候除了進行匹配操作以外,我們還想 要提取所匹配的模式。例如,如果決定匹配模式\w+-\d+,但是想要分別儲存第一部分的字母 和第二部分的數字,該如何實現?我們可能想要這樣做的原因是,對於任何成功的匹配,我 們可能想要看到這些匹配正規表示式模式的字串究竟是什麼。 如果為兩個子模式都加上圓括號,例如(\w+)-(\d+),然後就能夠分別訪問每乙個匹配 子組。我們更傾向於使用子組,這是因為擇一匹配通過編寫**來判斷是否匹配,然後 第 1 章 正規表示式 11 執行另乙個單獨的程式(該程式也需要另行建立)來解析整個匹配僅僅用於提取兩個部 分。為什麼不讓 python 自己實現呢?這是 re 模組支援的乙個特性,所以為什麼非要重蹈 覆轍呢?

正規表示式模式

匹配的字串

\d+(\.\d*)? 

表示簡單浮點數的字串;也就是說,任何十進位制數字,後面可以接乙個小數點

和零個或 者多個十進位制數字,

例如「0.004」、「2」、「75.」等

(mr?s?\.)?[a-z][a-z]*[a-za-z-]+

名字和姓氏,以及對名字的限制(如果有,首字母必須

大寫,後續字母小寫),全名前可以 有可選的「mr.」、

「mrs.」、「ms.」或者「m.」作為稱謂,以及靈活可選的姓氏,

可以有多 個單詞、橫線以及大寫字母

擴充套件表示法

擴充套件表示法是以問號開始(?…),它們通常用於在判斷匹配之前提供標記,實現乙個前視(或 者後視)匹配,或者條件檢查。儘管圓括號使用這些符號,但是只有(?p)表述乙個 分組匹配。所有其他的都沒有建立乙個分組。然而,你仍然需要知道它們是什麼,因為它們 可能最適合用於你所需要完成的任務。

python正規表示式及使用正規表示式的例子

正規表示式 正則表達用來匹配字串 正規表示式匹配過程 正規表示式語法規則 匹配除換行 n 外的任意字串 abcabc 轉義字元,使後乙個字元改變原來的意思 a c a c 字符集,對應的位置可以是字符集中任意字元,字符集中的字元可以逐個列出,也可以給出範圍,如 abc 或 a c 第乙個字元如果是 ...

Python正規表示式使用

python正規表示式使用 正規表示式不是python內建的功能,所以需要引入import re模組才可以使用。正規表示式的功能很多,但是我們通常使用的功能也就是那幾個,這裡對工作中經常使用到的正規表示式進行乙個系統的總結。1.字元 匹配除了換行符 n 外的字元 轉義字元,使後乙個字元改變以前的意思...

python 正規表示式使用

場景 替換很多動態資料的時候,會重複很多的條件判斷if,replace。作用 完成多步,同時去匹配符合特定規則的字串,完成通用的正則匹配 正規表示式是一種通用的字串匹配技術,是不會因為程式語言不同發生變化。想要查詢某種特徵的,具有一定規則的字串,都是可以嘗試使用正規表示式 jsonpath,xpat...