Python之正規表示式

2021-09-05 01:13:13 字數 1729 閱讀 9151

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 表示替換所有的匹...