本文介紹了python對於正規表示式的支援,包括正規表示式基礎以及python正規表示式標準庫的完整介紹及使用示例。本文的內容不包括如何編寫高效的正規表示式、如何優化正規表示式,這些主題請檢視其他教程。
正規表示式運用
#pattern類工廠方法
import re
pattern = re.compile(r'\d+') #將正則表達編譯成pattern物件
print(pattern.split('one1two2three'))
#以此分隔並返回分開後的形式
print(pattern.match('0one1two2three'))
#返回乙個物件
print(pattern.findall('one111two211three'))
#返回所有能匹配的物件
print(pattern.finditer('one1two2three'))
#返回為迭代器
pattern1 = re.compile(r'(\d\w+) (\d\w+)')
#相互交換位置
print(pattern1.sub(r'\2 \1','1one 2two'))
郵箱等規則字串可用
match
:盡量不匹配,找到乙個馬上返回
search
:
findall
:盡量匹配
match物件是一次匹配的結果,包含了很多關於此次匹配的資訊,可以使用match提供的可讀屬性或方法來獲取這些資訊。
pattern物件是乙個編譯好的正規表示式,通過pattern提供的一系列方法可以對文字
進行匹配查詢。
pattern不能直接例項化,必須使用re.compile()進行構造。
正規表示式通常用於在文字中查詢匹配的字串。python裡數量詞預設是貪婪的(在少數語言裡也可能是預設非貪婪),總是嘗試匹配盡可能多的字元;
非貪婪的則相反,總是嘗試匹配盡可能少的字元。
例如:正規表示式」ab*」如果用於查詢」abbbc」,將找到」abbb」。而如果使用非貪婪的數量詞」ab*?」,將找到」a」。
print('result1', result1.group(1)) # 結果 result1
print('result2', result2.group(1)) # 結果 result2 keracn
content = 'hello 1234567 world_this is a regex demo'
result = re.match('^he.*?(\d+).*demo$', content)
print(result.group(1)) # 結果
result = re.match('^he.*(\d+).*demo$', content)
print(result.group(1)) # 結果 7
python高階07 正規表示式
import re dir re a ascii debug dotall i ignorecase l locale m multiline regexflag s scanner t template u unicode verbose x maxcache all builtins cache...
程式設計 正規表示式
乙個正規表示式就是由普通字元 例如字元 a 到 z 以及特殊字元 稱為元字元 組成的文字模式。該模式描述在查詢文字主體時待匹配的乙個或多個字串。正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。這裡有一些可能會遇到的正規表示式示例 jscript vbscript 匹配 t t 匹配乙個...
PHP學習07 正規表示式
正規表示式組成部分 元字元和文字字元 元字元 具有特殊含義的字元 文字字元 普通文字 php使用prce風格的正規表示式。內容一般放在定界符 中間。1.行定位符 和 行定位符就是用來描述子串的邊界。表示行的開始,表示行的結束。2.單詞定界符 b和 b 需要匹配單詞,而非單詞一部分。b表示匹配乙個完整...