本篇文章给大家带来的内容是关于python正则表达式中re模块的使用方法有哪些?re模块用法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
正则是处理字符串最常用的方法,我们编码中到处可见正则的身影。
正则大同小异,python 中的正则跟其他语言相比略有差异:
1、替换字符串时,替换的字符串可以是一个函数
2、split 函数可以指定分割次数,这会导致有个坑
3、前项界定的表达式必须定长
下面详细描述下re模块的使用方法,其实,注意上面提到的三点差异就好
1、match
说明:
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回 None。
语法:
re.match(pattern, string, flags=0)
flags为可选标识,多个标识可以通过按位或 (|) 来指定。如 re.I | re.M 被设置成 I 和 M 标识:
修饰符 |
描述 |
re.I |
使匹配对大小写不敏感 |
re.L |
做本地化识别(locale-aware)匹配 |
re.M |
多行匹配,影响 ^ 和 $ |
re.S |
使 . 匹配包括换行在内的所有字符 |
re.U |
根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B. |
re.X |
该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。 |
匹配成功re.match方法返回一个匹配的对象,可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。group() 或 group(0),返回整个正则表达式的匹配结果。
举例:
s= 'abc123abc'print(re.match('<div>本文来源gaodai.ma#com搞#代!码网_</div>[a-z]+', s)) # <_sre.SRE_Match object; span=(0, 3), match='abc'>print(re.match('[a-z]+', s).group(0)) # abcprint(re.match('[\d]+', s)) # Noneprint(re.match('[A-Z]+', s, re.I).group(0)) # abcprint(re.match('[a-z]+', s).span()) # (0, 3)
2、search
说明:
re.search 扫描整个字符串并返回第一个成功的匹配。
语法:
re.search(pattern, string, flags=0)
匹配成功re.search方法返回一个匹配的对象,否则返回None。可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
举例:
s = 'abc123abc'print(re.search('[a-z]+', s).group()) # abcprint(re.search('[a-z]+', s).span()) # (0, 3)print(re.search('[\d]+', s).group()) # 123print(re.search('[\d]+', s).span()) # (3, 6)print(re.search('xyz', s)) # None