正则模块

正则模块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方法
# &lt;re.Match object; span=(4, 8), match='3714'&gt;
# 3714
# &lt;re.Match object; span=(12, 15), match='110'&gt;
# 110
# &lt;re.Match object; span=(18, 21), match='666'&gt;
# 666

View Code

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。