本篇文章為大家帶來了關於Python的相關知識,主要介紹了python 正則表達式如何實現重疊匹配,具有很好的參考價值,下面一起來看一下,希望對大家有幫助。
【相關推薦:Python3影片教學 】
import regex string = '100101010001' str_re = '101' print(regex.findall(str_re, string, overlapped=True))
#普通的re庫匹配,只能匹配一個'101'。
正規表示式可理解為資料篩選的表達式,是有限個原子和元字元組成。
原子:基本組成單位,每個表達式至少有一個原子
普通字元組成原子 | # |
---|---|
非列印字元組成原子 (不印在輸出台的字元) | ##\n :換行\t:tab退格符號 |
\w:符合任意字母、數字、底線\W:與\w相反\d:符合任十進制數\D:與\d相反\s :符合任意空白字符,如空格、換行、縮排\S:與\s相反 | |
一組原子組成一個表,由[]宣告表內原子優先權相等,但內容只出現依序若原子表以^ 開頭,則表示取反 |
#元字元:正規表示式中具有特殊意義的字元
匹配任意字符,除了換行符 | |
---|---|
匹配字串開始的位置 | |
符合字串結束的位置,當出現多組符合的符合時,傳回字串最後的那組符合 | |
匹配0,1,n 次前面的原子【貪婪模式:盡可能多的匹配】 | |
匹配0,1 次前面的原子【懶惰模式:精確匹配】 | |
符合1,n 次前面的原子 | |
前面的原子出現j 次 | |
#前面的原子至少出現j 次 | |
前面的原子至少出現j 次,至多出現k 次 | |
符合i 或j ,若i 與j 同時出現,匹配i | |
組,限制這組資料的組合如()內所描述一樣,只傳回符合括號內描述的內容 |
#即函數中flag 位置的參數,在不改變正規表示式的情況下改變其意義,調整配對結果。
#多行匹配 | |
本地化識別匹配 | |
##根據unicon字元匹配,影響\w \W | |
#符合包含換行符 |
正規符合常用的函數:(呼叫正規表示式模組re)
:掃描字串str,傳回pat的位置(第一次成功匹配的),flag用於控制正規表示式的匹配方式
import re str = 'python' pat = 'pytho[a-n]' print(re.search(pat, str))
re. match(pat, str[, flag])<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:py;">import re
str_1 = &#39;hello world&#39;
str_2 = &#39;world hello&#39;
pat = &#39;world&#39;
print(re.match(pat, str_1))
print(re.match(pat, str_2))</pre><div class="contentsignin">登入後複製</div></div>
findall(str[, pos[, endpos]])re.complie(pat).findall(str):全域匹配函數,符合str中所有符合pat的子字串,裝入一個列表回傳結果
###import re str = "hello world hello world hello world" pat = "hello" print(re.complie(pat).findall(str)) print(re.complie(pat).findall(str, 5, 15))
import re str = "400-823-823" pat = "-" #短横改空格,最大替换次数2 str_new = re.sub(pat, " ", str, count=2)
以上是python正規表示式如何實現重疊匹配的詳細內容。更多資訊請關注PHP中文網其他相關文章!