Python 中正則表示式重複情況有哪些?
我們可以使用一些特殊字元構建識別重複字元組的正則表示式。以下元字元可用於搜尋重複的字元或字元集。
問號是第一個開發的重複運算子或限定符。它透過指示引擎嘗試匹配前一個標記 0 次或 1 次來有效地使其成為可選的。
引擎被指示透過星號或星號嘗試匹配前一個標記零次或多次。加號指示引擎嘗試匹配前一個標記一次或多次。<[A-Za-z] [A-Za-z0-9]*> 匹配沒有任何屬性的 HTML 標籤。尖括號是字面表示式。第一個字元類對應於一個字母。第二個字元類匹配字母或數字。星號重複第二個字元類。如果第二個字元類不匹配任何內容,這是可以接受的,因為我們使用了星號。因此,這樣的標籤將與我們的正則表示式匹配。
第一個字元類將在匹配時匹配 H。由於使用了星號,第二個字元類將重複三次,並在每一步匹配 T、M 和 L。我也可以選擇使用 [A-Za-z0-9]+。我避免這樣做,因為此正則表示式將匹配無效的 HTML 元素 1>。但是,如果您確定您正在檢視的文字不包含此類無效標籤,則此正則表示式可以足夠。
限制重複
您還可以使用額外的限定符指示標記可以重複多少次。語法是 min,max,其中 min 表示匹配的最小次數(零或正整數),max 表示匹配的最大次數(等於或大於 min 的整數)。如果存在逗號但 max 被省略,則匹配的最大次數是無限的。因此,值 0 和 1 分別等價於 ?、* 和 +。如果省略逗號和 max,則引擎被指示精確重複標記 min 次。
要匹配 1000 到 9999 之間的數字,請使用表示式 b[1-9][0-9]3b。介於 100 和 99999 之間的數字匹配值 2,4b。請注意使用的術語限制。
重複中使用的元字元
| 字元 | 含義 | 示例 |
|---|---|---|
| ? | 這意味著前一個字元的零個或一個。 注意那裡的零部分,因為如果您不小心,它可能會讓您陷入困境。 |
pythonl?y 匹配 pythony pythonly |
| * | 查詢前一個字元的零個或多個。 | pythonl*y 匹配 以上兩者加上 pythonlly, pythonllly,等等 |
| + | 查詢前一個字元的一個或多個。 | pythonl+y 匹配 pythonly, pythonlly, pythonllly,等等 |
| {n,m} | 查詢前一個字元的 n 到 m 次重複。 | fo{1,2} 匹配 fo 或 foo |
所有這些重複字元都可以用來描述字元組。因此
>>> import re # Python 的正則表示式模組 - 所有示例中都隱式匯入
>>> re.match('(.an){1,2}s', 'cans')
<re.MatchObject instance at 862760>
相同的模式也將匹配 'cancans' 或 'pans' 或 'canpans',但不匹配 'bananas'。
示例
以下程式碼回答了上述問題
#importing re import re #storing a string s = "sheeeeeeeeple" print("Give String -",s) #searching for the repetitive words match = re.search(r"he+", s) #printing the matched groups of letters together print ("Latest String-",match.group())
輸出
Give String - sheeeeeeeeple Latest String- heeeeeeee
程式碼解釋
首先,我們從正則表示式模組匯入 re。然後我們將字串 sheeeeeeeeple 儲存在變數 s 中。透過使用 search 方法,我們在字串 s 中搜索“e”的重複,並將其儲存在變數 match 中。然後透過使用 group 方法,我們列印匹配的單詞。
示例 2
以下程式碼回答了上述問題
#importing re import re #storing a string s = "tutoriallllllllsPoint" print('Give String-',s) #searching for the repetitive words match = re.search(r"al+", s) #printing the matched groups of letters together print ("Lates string -",match.group())
輸出
Give String- tutoriallllllllsPoint Lates string - allllllll
程式碼解釋
首先,我們從正則表示式模組匯入 re。然後我們將字串 sheeeeeeeeple 儲存在變數 s 中。使用 search 方法,我們在字串 s 中搜索“l”的重複,並將其儲存在變數 match 中。然後透過使用 group 方法,我們列印匹配的單詞。
結論
無論重複多少次,都被稱為重複的表示式。任何次數(包括 0)都可以在 '*' 之後重複表示式。任何次數,但至少一次,都可以重複 '+' 後面的表示式。
‘?’ 後面的表示式可以重複零次或一次。當需要明確指定最小值和最大重複次數時,可以使用邊界運算子 {}。因此,a{2} 是字母 'a' 精確重複兩次,a{2,4} 表示字母 'a' 重複 2 到 4 次,a{2,} 表示字母 'a' 至少重複兩次,沒有上限。請注意,{} 內部不能有空格,並且下限和上限的值沒有上限。所有重複表示式都引用最短的可能的先前子表示式:單個字元;字元集或用 () 分組的子表示式
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP