1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python中re模块_python中re模块的使用以及一些正则表达式的总结

python中re模块_python中re模块的使用以及一些正则表达式的总结

时间:2022-09-17 15:39:00

相关推荐

python中re模块_python中re模块的使用以及一些正则表达式的总结

一、re模块的使用-常用方法

match(pattern, string, flags = 0) 从string的第一个字符来匹配。如果匹配成功,返回匹配对象,否则返回None,匹配结果可以用group方法获取

importre

c= re.match('[0-9]+[a-z]+', 'a99aaa')print(c.group(0))

结果:

---------------------------------------------------------------------------

AttributeError Traceback (most recent call last)

in ()

1 import re

2 c = re.match('[0-9]+[a-z]+', 'a99aaa')

----> 3 print(c.group(0))

AttributeError: 'NoneType' object has no attribute 'group'

importre

c= re.match('[0-9]+[a-z]+', '99aaa')print(c.group(0))

结果:

99aaa

search(pattern, string ,flags = 0) 匹配字符串中第一次出现的符合正则的子串,没有从第一个字符匹配的限制。如果匹配成功,则返回匹配对象,否则返回None

importre

c= re.search('[0-9]+[a-z]+', 'aa99aaa')print(c.group(0))

结果:

99aaa

findall(pattern, string[,flags] ) 查找字符串中所有(非重复)出现的正则表达式模式,并返回一个匹配列表

importre

c= re.findall('[0-9]+[a-z]+', 'aa99aaa88bb77cc')print(c)

结果:

['99aaa', '88bb', '77cc']

finditer(pattern, string[,flags] ) 与findall()相同,但返回的是一个迭代器。对于每一次成功匹配,迭代器都会返回一个匹配对象

importre

c= re.finditer('[0-9]+[a-z]+', 'aa99aaa88bb77cc')for i inc:print(i.group(0))

结果:

99aaa

88bb

77cc

split(pattern, string, max = 0) 根据正则表达式的模式分隔符,split函数将字符串分割为列表,返回匹配列表,分割最多操作max次

importre

c= re.split('[0-9]+', 'aa99aaa88bb77cc', 2)print(c)

结果:

['aa', 'aaa', 'bb77cc']

compile(pattern) 生成一个规则模式,返回一个正则表达式对象

importre

c= pile('[0-9]+[a-z]+')

r= re.findall(c, 'aa99aaa88bb')print(r)

结果:

['99aaa', '88bb']

以上方法中的flags参数为匹配模式,如下:

1).re.I(re.IGNORECASE): 忽略大小写2).re.M(MULTILINE): 多行模式,改变’^’和’$’的行为3).re.S(DOTALL): 点任意匹配模式,改变’.’的行为,使其可以匹配'\n'

4).re.L(LOCALE): 使预定字符类 \w \W \b \B \s \S 取决于当前区域设定5).re.U(UNICODE): 使预定字符类 \w \W \b \B \s \S \d \D 取决于unicode定义的字符属性6).re.X(VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释

二、常用正则

ip: (?:[0-9]{1,3}\.){3}[0-9]{1,3}

邮箱: [a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+

手机号:1[0-9]{10}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。