python中使用正则表达式的方法详解
目录
search(pattern, string, flags=0)findall(pattern, string, flags=0)sub(pattern, repl, string, count=0, flags=0)compile(pattern, flags=0)flags的一些常用值总结在python中使用正则表达式,主要通过下面的几个方法
search(pattern, string, flags=0)
扫描整个string并返回匹配pattern的结果(None或对象)有匹配的字符串的话返回一个对象(包含符合匹配条件的第一个字符串),否则返回Noneimport re #导入正则库 content = "Hello 1234567 Hello 666" #要匹配的文本 res = "Hello\s" #正则字符串 result = re.search(res, content) if result is not None: print(result.group()) #输出匹配得到的字符串 "hello"(返回的得是第一个"hello") print(result.span()) #输出输出匹配的范围(匹配到的字符串在原字符串中的位置的范围) res1 = "Hello\s(\d)(\d+)" result = re.search(res1, content) print(result.group(1)) #group(1)表示匹配到的第一个组(即正则字符串中的第一个括号)的内容 print(result.group(2))
findall(pattern, string, flags=0)
扫描整个context并返回匹配res的结果(None或列表)有匹配的字符串的话返回一个列表(符合匹配条件的每个子字符串作为它的一个元素),否则返回Noneimport re res = "Hello\s" results = re.findall(res, content) if results is not None: print(results) #输出: ["hello","hello"] res1 = "Hello\s(\d)(\d+)" results = re.findall(res1, content) if result is not None: print(results) # 当正则字符串中出现括号时,所得到列表的每个元素是元组 # 每个元组的元素都是依次匹配到的括号内的表达式的结果 #输出: [("1","1234567"),("6","666")]
sub(pattern, repl, string, count=0, flags=0)
可以来修改文本用将用pattern匹配string所得的字符串替换成replimport re content = "54aK54yr5oiR54ix5L2g" res = "\d+" content = re.sub(res, "", content) print(content)
compile(pattern, flags=0)
将正则表达式res编译成一个正则对象并返回,以便复用
import re content1 = "2019-12-15 12:00" content2 = "2019-12-17 12:55" content3 = "2019-12-22 13:21" pattern = re.compile("\d{2}:\d{2}") result1 = re.sub(pattern, "", content1) result2 = re.sub(pattern, "", content2) result3 = re.sub(pattern, "", content3) print(result1, result2, result3)
flags的一些常用值
re.I 使匹配对大小写不敏感re.S 使.匹配包括换行符在内的所有字符import re re.compile(res, re.I) #如果res可以匹配大写字母,那它也可以匹配相应的小写字母,反之也可 re.compile(res,re.S) #使res中的"."字符可以匹配包括换行符在内的所有字符
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?