一、基礎語法
import re
# 從起始行開始匹配
# 不從起始行開始匹配(match只匹配字串開頭,如果找不到則返回none;search匹配整個字串,直到找到乙個匹配)
# 如果匹配不成功就返回none
print(re.match('weixin', 'www.baidu.com'))
二、運用
import re
line = 'shallow encounter world of mortals, deep read life'
# 以world為間隔
matchobj = re.match(r'(.*) world (.*?) .*', line, re.m | re.i)
if matchobj:
print("matchobj.group() : ", matchobj.group())
print("matchobj.group(1) : ", matchobj.group(1))
print("matchobj.group(2) : ", matchobj.group(2))
else:
print("no match!!")
matchobj = re.search(r'(.*) dogs (.*?) .*', line, re.m | re.i)
if matchobj:
print("matchobj.group() : ", matchobj.group())
print("matchobj.group(1) : ", matchobj.group(1))
print("matchobj.group(2) : ", matchobj.group(2))
else:
print("no match!!")
三、替換
import re
# 刪除字串中的 python注釋
num = re.sub(r'#.*$', "", phone)
print("**號碼是: ", num)
# 刪除非數字(-)的字串
num = re.sub(r'\d', "", phone)
print("**號碼是: ", num)
四、查詢數字
import re
# 匹配至少乙個數字
pattern = re.compile(r'\d+')
m = pattern.match('one2three456seven8nine')
print(m)
m = pattern.match('one2three456seven8nine', 9, 15)
print(m)
# 返回匹配成功的整個字串
res = m.group(0)
print(res)
# 起始位置
res = m.start(0)
print(res)
# 結束位置
res = m.end(0)
print(res)
# 返回匹配成功的整個字串的索引
res = m.span(0)
print(res)
五、不區分大小寫
import re
# re.i 表示忽略大小寫
pattern = re.compile(r'([a-z]+) ([a-z]+)', re.i)
m = pattern.match('hello world hello world')
print(m)
# 返回第乙個分組匹配成功的字串
res = m.group(1)
print(res)
# 等價於 (m.group(1), m.group(2), ...)
res = m.groups()
print(res)
# 不存在第三個分組
# res = m.group(3)
# print(res)
# 返回第乙個分組匹配成功的字串的索引
res = m.span(1)
print(res)
六、字串分隔
import re
#字串分隔
print(re.split('\w+', 'runoob, runoob, runoob.'))
# 不限次數分隔
print(re.split('\w+', 'r unoob, runoob, runoob.'))
# 分隔一次
print(re.split('\w+', 'r unoob, runoob, runoob.',1))
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 表示替換所有的匹...