一、re舉例 import re #查找數字 p = re.compile(r"\d+") #在字元串“ongahjeuf125”中及逆行查找,按照規則p指定的正則進行查找 m = p.match("ong125fdsgdsf48515",3,20)#後面的參數序號3到6的搜索範圍 print(m) ...
一、re舉例
import re #查找數字 p = re.compile(r"\d+") #在字元串“ongahjeuf125”中及逆行查找,按照規則p指定的正則進行查找 m = p.match("ong125fdsgdsf48515",3,20)#後面的參數序號3到6的搜索範圍 print(m) #上述代碼說明 #1.match可以輸入參數表示起始位置 #2.查找到的結果只包含一個,表示第一次進行匹配成功的內容 print(m[0])#直接列印出了匹配的內容 print(m.start(0))#列印匹配內容從哪裡開始的 print(m.end(0))#列印匹配內容從哪裡結束的
2.再舉個例子:可以分組獲取內容
#參數中re.I代表忽略大小寫 p1 = re.compile(r"([a-z]+) ([a-z]+)",re.I) m1 = p1.match("I am relly good man") print(m1) print(m1.group(0)) print(m1.start(0)) print(m1.end(0)) print("===================") print(m1.group(1)) print(m1.start(1)) print(m1.end(1)) print("===================") print(m1.group(2)) print(m1.start(2)) print(m1.end(2)) print("===================") print(m1.groups())
3.查找
(1)search(str,pos[,endpox]]):在字元串中查找匹配,pos和endpos表示起始位置
(2)findall:查找所有
(3)finditer:查找,返回一個iter結果
4.替換
sub(rep1,str[,count])
p2 = re.compile(r"\d+") m2 = p2.search("one12two34three567four") print(m2.group()) m3 = p2.findall("one12two34three567four") print(type(m3)) print(m3) p3 = re.compile(r"(\w+) (\w+)") s = "hello 123 wang 456 jfowe,i jodf " ret = p3.sub(r"Hello world",s) print(ret)
5.註意
大部分中文內容表示範圍是[u4e00-u9fa5],不包括全形標點
title = "世界 你好,hello moto" p4 = re.compile(r"[\u4e00-\u9fa5]+") rst = p4.findall(title) print(rst)
二、源碼
D31_1_RexLearning.py
https://github.com/ruigege66/Python_learning/blob/master/D31_1_RexLearning.py
2.CSDN:https://blog.csdn.net/weixin_44630050(心悅君兮君不知-睿)
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料