Python 正則表示式,search(不要求從開頭匹配),findall(匹配所有),sub(替換),split(切割)
阿新 • • 發佈:2018-12-07
match()從開頭匹配。
search()不要求從開頭匹配,只會匹配第一個。
findall()匹配所有,返回列表。
sub()替換匹配到的所有子串為指定內容,並返回整個字串。
split()切割字串,返回列表。
demo.py(search,不要求從開頭匹配,只會匹配第一個):
# coding=utf-8 import re ret = re.search(r"\d+", "閱讀次數為 9999") # match預設從開頭匹配,search不要求從開頭匹配 # ret = re.search(r"^\d+", "閱讀次數為 9999") # 如果正則表示式中加入^表示從開頭匹配,那麼search與match相同。 if ret: print(ret.group()) # 9999 自會匹配第一個 (findall匹配所有,返回列表) else: print("未找到")
demo.py(findall,匹配所有,返回列表):
# coding=utf-8
import re
ret = re.findall(r"\d+", "閱讀次數為 9999,點贊數 666") # search只匹配第一個,findall匹配所有(返回列表)
if ret:
print(ret) # ['9999', '666'] findall匹配所有,返回列表
else:
print("未找到")
demo.py(sub替換匹配到的所有):
# coding=utf-8 import re # sub替換 替換成固定字串 ret = re.sub(r"\d+", "替換成的內容","閱讀次數為 9999,點贊數 666") # 替換匹配到的所有,並返回整個字串。 print(ret) # 閱讀次數為 替換成的內容,點贊數 替換成的內容 # ####################################################### # sub替換 替換成函式的返回值 def add(temp): strNum = temp.group() num = int(strNum) + 1 return str(num) ret = re.sub(r"\d+", add, "python = 997") # 將匹配到的內容(997)傳給add函式,並將997替換成add函式的返回值。 print(ret) # python = 998 ret = re.sub(r"\d+", add, "python = 99") print(ret) # python = 100
demo.py(split切割字串,返回列表):
#coding=utf-8
import re
ret = re.split(r":| ","info:xiaoZhang 33 shandong") # 切割,根據冒號:或者空格切割。 返回列表
print(ret) # ['info', 'xiaoZhang', '33', 'shandong']