當使用正規表示式時,一對圓括號可以實現以下任意乙個(或者兩個)功能:
• 對正規表示式進行分組;
• 匹配子組。
關於為何想要對正規表示式進行分組的乙個很好的示例是:當有兩個不同的正規表示式 而且想用它們來比較同乙個字串時。另乙個原因是對正規表示式進行分組可以在整個正則 表示式中使用重複操作符(而不是乙個單獨的字元或者字符集)。 使用圓括號進行分組的乙個***就是,匹配模式的子字串可以儲存起來供後續使用。 這些子組能夠被同一次的匹配或者搜尋重複呼叫,或者提取出來用於後續處理。
為什麼匹配子組這麼重要呢?主要原因是在很多時候除了進行匹配操作以外,我們還想 要提取所匹配的模式。例如,如果決定匹配模式\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...