re模块
-
导入:
import re
-
使用
-
findall
-
# findall(正则表达式, 字符串) 返回值: 匹配上值的列表 ret = re.findall(r"\d+", "123456aaa213") # ['123456', '213'],没有就返回一个[]
-
-
search
-
# search(正则表达式, 字符串) 返回值: 匹配对象,没有匹配上就返回None ret = re.search(r"\d+", "123456aaa213") # <_sre.SRE_Match object; span=(0, 6), match='123456'> ret.group() # 123456 ret.span() # (0, 6) ret.groups() # ()
-
-
match
-
# match(正则表达式, 字符串) 返回值: 匹配对象,没有匹配上就返回None ret = re.match(r"\d+", "123456aaa213") # <_sre.SRE_Match object; span=(0, 6), match='123456'> ret.group() # 123456 ret.span() # (0, 6) ret.groups() # ()
-
-
sub
-
# sub替换,sub(正则表达式/旧字符串, 新字符串, 整个字符串, 替换的个数,不填默认所有) # 返回值: 已修改的字符串 ret = re.sub(r'\d+', 'H', '123replace123') # HreplaceH,默认全部替换 ret = re.sub(r'\d+', "H", '123replace123', 1) # Hreplace123,替换一次 ret = re.sub(r'\d+', "H", '123replace123', 100) # HreplaceH,替换的个数填的大于匹配的个数,就是全部替换
-
-
subn
-
# subn替换,subn(正则表达式/旧字符串, 新字符串, 整个字符串, 替换的个数,不填默认所有) # 返回值: 一个元组(已修改的字符串, 替换的个数) ret = re.sub(r'\d+', 'H', '123replace123') # ('HreplaceH', 2)
-
-
split
-
# split切割,split(正则表达式/字符串, 整个字符串) # 返回值: 列表["匹配上就为空字符串", "未匹配上的保留", "匹配上就为空字符串"] ret = re.split(r'\d+', '123replace123') # ["", "replace", ""] ret = re.split(r'\d+', 'repla123ce123') # ["replace", ""] 中间匹配上就不会缓存空字符串,只有两侧才会
-
-
compile
-
# compile提取编译,提高速度 pattern = re.compile(r"\d+") # 提前编译 pattern.search("123compile123").group() # 123,可以直接使用提前编译好的 pattern.search("111aaa111").group() # 111
-
-
finditer
-
# finditer省空间,返回的是一个迭代器 ret = re.finditer(r'\d', 'fafaggeag131fafafq141fafaef65') # 返回是一个迭代器 for i in ret: # 依次取出来 print(i.group()) # 1 3 1 1 ...
-
-
分组
()
和分组命名(?P<name>)
-
# (?:正则)可以取消分组的特性 # split使用分组会保留匹配到字符串 ret = re.split(r'\d+', 'aaa123bbb456') # ['', 'aaa.', 'bbb', ''] ret = re.split(r'(\d+)', 'aaa123bbb456') # ['aaa', '123', 'bbb', '456', ''] # search使用分组就可以通过group(n)来按照分组的顺序查看分组匹配到的内容 ret = re.search(r'(\d+)\.(\d+)', 'aaa123.456') ret.group() # 123.456 ret.group(0) # 123.456 ret.group(1) # 123 ret.group(2) # 456 # 分组命名一般是用于匹配html ret = re.search(r"<(?P<tag_name>\w+)>(?P<t>\w+)</(?P=tag_name)>", "dawd<a>hello</a>dwad") ret.group() # <a>hello</a> ret.group("tag_name") # a ret.group("t") # hello
-
-