python之正则表达式
2018-02-01 17:09 yyshuke 阅读(171) 评论(0) 编辑 收藏 举报正则表达式是检查一个字符串是否与某种模式匹配
1.re库的主要功能函数:
import re match=re.search(r'[1-9]\d{5}','BIT 100081') if match: print(match.group())
import re match=re.match(r'[1-9]\d{5}','100081') if match: print(match.group(0))
import re list=re.findall(r'[1-9]\d{5}','BIT100081 100084') print(list)
re.search(pattern,string)是匹配整个字符串,并返回第一个匹配成功的对象
re.match(pattern,string)是只匹配字符串的开始,如果字符串开始不符合正则表达式则匹配失败,返回None
re.findall(pattern,string)是搜索字符串,以列表的类型返回全部能匹配的子串
re.split(pattern,string)将一个字符串遵照正则表达式匹配结果进行分割,返回列表类型
import re word=re.split(r'[1-9]\d{5}','BIT100081 tyu100084') print(word)
结果:
['BIT', ' tyu', '']
re.split()是将匹配的结果去掉,去掉之后的部分当做一个元素返回到一个列表里。
re.finditer()搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象。
import re for m in re.finditer(r'[1-9]\d{5}','BIT100081 tyu100084'): if m: print(m.group(0))
re.sub()下一个字符串中替换所匹配的正则表达式,返回替换后的字符串
import re match=re.sub(r'[1-9]\d{5}','wdyqs','BIT100081 tyu100084') print(match)
BITwdyqs tyuwdyqs
re.compile()将正则表达式的字符串形式编译成正则表达式对象
例:regex=re.compile(r'[1-9]\d{5}')
group(0)是获取匹配后的字符
2.re的贪婪匹配和最小匹配
match=re.search(r'PY.*N','PYERWNSFNS') match.group(0)
结果是:最长的字符串
'PYERWNSFN'
match=re.search(r'PY.*?N','PYUFNDFDFN') match.group(0)
结果是:最短的字符串 ======其实就是加?
'PYUFN'