Python正则表达式re模块
re.compile(pattern,flags=0)
将正则表达式编译成正则表达式对象。可以使用match()和search()方法进行匹配。对于常用的表达式可以先进行编译,后续可多次使用以提高效率。如
r = re.compile(r'a') rt = r.search('delav')
rt.group() #结果为'a'
re.match(pattern,strings)
匹配字符串开头,并返回一个matchobject实例,如果匹配失败,则返回None。返回的实例可使用re.group()来返回匹配到的结果。如
r = re.match(r'de', 'Delav') r.group() #结果为de
re.search(pattern,strings)
匹配字符串任意位置(只返回字符串第一个位置的匹配项),并返回一个matchobject实例,如果匹配失败,则返回None。返回的实例可使用re.group()来返回匹配到的结果。如
r = re.search(r'la', 'Delav') r.group() #结果为'la'
re.findall(pattern,strings)
匹配字符串任意位置,返回从左到右匹配到的匹配项的列表,可以是零个、一个或多个。如
r = re.findall(r'e', 'delaver') #结果为['e','e']
re.finditer(pattern,strings)
从左到右进行匹配,返回一个包含matchobject实例的迭代器。如
r = re.finditer(r'e', 'delaver')
for i in r:
i.group() #结果为'e', 'e'
re.split(pattern,strings,maxsplit=0)
以匹配到的匹配项来分割字符串,并返回一个分割后的字符串列表。maxsplit表示最多分隔次数。如
r = re.split(r';|,|=', 'de,lo;pe=wq') #结果为['de', 'lo', 'pe', 'wq']
r = re.split(r';|,|=', 'de,lo'pe=wq', maxsplit=2) #结果为['de', 'lo', 'pe=wq']
re.sub(pattern,repl,strings,count=0)
用repl来替换匹配到的匹配项,并返回替换后的字符串。count表示最大替换次数。如
r = re.sub(r'e', '@', 'delaver') #结果为'd@lav@r'
r = re.sub(r'e', '@', 'delaver', count=1) #结果为'd@laver'
re.sub(pattern,repl,strings,count=0)
与sub()相同作用,只是subn()返回的是替换后的字符串和替换次数组成的元组。如
r = re.subn(r'e', '@', 'delavererefe') #结果为('d@lav@r@r@f@', 5) r = re.subn(r'e', '@', 'delavererefe', count=3) #结果为('d@lav@r@refe', 3)
re.escape(pattern)
将字符串中所有可能被解释为正则运算符的字符进行转义。如
re.escape('python.exe') #结果为'python\.exe'
re.purge()
清楚正则表达式缓存