码迷,mamicode.com
首页 > 其他好文 > 详细

正则模块

时间:2019-09-28 23:23:24      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:display   字符串   返回值   findall   search   lap   mat   none   iter   

正则模块findall用法:

技术图片
import re  #正则模块
ret = re.findall(\d+, "alex3714pwd123")  #将匹配结果以列表形式返回
print(ret)  #[‘3714‘, ‘123‘]
View Code

正则search方法:

如果没有匹配到 那么返回值位none,而none没有group方法,会报错

技术图片
import re  #正则模块
ret = re.search(\d+, "alex3714pwd123")   # 将匹配结果以对象形式返回,只匹配第一个
print(ret) #<re.Match object; span=(4, 8), match=‘3714‘>
print(ret.group()) #匹配结果用group方法查看 3714
View Code

正则 search的分组

技术图片
import re
tag = <span>search<\span>
ret = re.search(r>(\w+)<, tag)
print(ret.group()) #>search<
print(ret.group(1))
print(ret.groups()) #(‘search‘,) 保存分组
View Code

正则split方法:

技术图片
import re  #正则模块
new_str = re.split(\d+, alex123egon12tonny1)  #把目标字符串按照一定的正则表达式进行拆分
print(new_str) #[‘alex‘, ‘egon‘, ‘tonny‘, ‘‘]
View Code

正则sub方法:

技术图片
import re
str1 = alex3714egon110eva666
str2 = re.sub(r\D, M, str1) #用新的字符去替换原有匹配到的字符
print(str2)  # MMMM3714MMMM110MMM666
View Code

正则subn方法:

技术图片
import re
str1 = alex3714egon110eva666
str2 = re.subn(r\D, M, str1) #用新的字符去替换原有匹配到的字符
print(str2)  # (‘MMMM3714MMMM110MMM666‘, 11)元组形式展示替换后的字符串和替换次数
View Code

正则compile:

技术图片
import re
str1 = alex3714egon110eva666
regx = re.compile(\d+)   # 将正则表达式多次使用,可以减少每次匹配的编译次数
ret = regx.findall(str1)
print(ret) #[‘3714‘, ‘110‘, ‘666‘]
View Code

正则finditer方法:

技术图片
import re
str1 = alex3714egon110eva666
Iter = re.finditer(r\d+, str1)   #将匹配结果作为一个迭代器返回
for item in Iter:
    print(item)   #每一个item类是一个search结果
    print(item.group()) # search结果掉用group方法
# <re.Match object; span=(4, 8), match=‘3714‘>
# 3714
# <re.Match object; span=(12, 15), match=‘110‘>
# 110
# <re.Match object; span=(18, 21), match=‘666‘>
# 666
View Code

 

正则模块

标签:display   字符串   返回值   findall   search   lap   mat   none   iter   

原文地址:https://www.cnblogs.com/dedadiao/p/11605330.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!