re 模組使 python 語言擁有全部的正規表示式功能。
compile 函式根據乙個模式字串和可選的標誌引數生成乙個正規表示式物件。該物件擁有一系列方法用於正規表示式匹配和替換。
re 模組也提供了與這些方法功能完全一致的函式,這些函式使用乙個模式字串做為它們的第乙個引數。
import re
從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none,匹配成功返回乙個匹配的物件。
re.match(pattern,string,flags=0)
str = "this is my house"
matchobj = re.match(r'(.*) is (.*) .*', str, re.m | re.i)
if matchobj:
print(matchobj.group())
print(matchobj.group(1))
print(matchobj.group(2))
else:
print("no match")
在字串內查詢模式匹配,直到找到第乙個匹配。匹配成功返回乙個匹配的物件,否則返回none。
re.search(pattern,string,flags=0)
searchobj = re.search(r'(.*) is (.*) .*', str, re.m | re.i)
if searchobj:
print(searchobj.group())
print(searchobj.group(1))
print(searchobj.group(2))
else:
print("nothing found!")
match只匹配字串的開始,如果字串的開始不符合正規表示式,則匹配失敗。
search匹配整個字串,直到找到乙個匹配
str1 = "cats are smarter than dogs"
matchobj1 = re.match(r'dogs',str1,re.m|re.i)
if matchobj1:
print(matchobj1.group())
else:
print("no match")
searchobj1 = re.search(r'dogs',str1,re.m|re.i)
if searchobj1:
print(searchobj1.group())
else:
print("no match")
替換字串中的匹配項
re.sub(pattern,repl,string,max=0)
返回的字串是在字串中用re最左邊不重複的匹配來替換。如果模式沒有發現,字元將原樣返回
max是模式匹配後替換的最大次數,必須是非負整數。預設值0表示替換所有的匹配
phone = '2342-324-243 # 這是乙個**號碼'
#刪除注釋
num = re.sub(r'#.*$','',phone)
print(num)
#移除非數字的內容
num1 = re.sub('\d',"",phone)
print(num1)
Python之正規表示式
正規表示式正規表示式主要用來匹配字串,例如 判斷乙個字串是否是乙個合法的 思想是用描述性的語言給字串乙個規則。re模組中的match函式提供了這種功能,若匹配成功則返回匹配物件,否則返回none。一 語法 d 表示匹配數字 w 表示匹配字母或數字 可以匹配任意字元 s可以匹配乙個空格或者tab 特殊...
Python之正規表示式
正規表示式元字元如下 匹配除換行符以外的所以字元 規定匹配模式必須出現在目標字串的開頭,例如 hell hello hellboy 規定匹配模式必須出現在目標字串的結尾,例如 ar car bar 其前乙個字元必須在目標物件中連續出現零次或多次 其前乙個字元必須在目標物件中連續出現一次或多次 其前乙...
Python之正規表示式
匯入re模組 檢索和替換 re.sub re.sub pattern,repl,string,count 0,flags 0 pattern 正則中的模式字串 repl 替換的字串,也可為乙個函式 string 要被查詢替換的原始字串 count 模式匹配後替換的最大次數,預設 0 表示替換所有的匹...