re.compile(pattern, flags=0)
编译正则表达式模式,返回的是一个RegexObject 对象。可以把那些常用的正则表达式编译成正则表达式对象,这样可以提高一点效率
pattern: 编译时用的表达式字符串。
flags: 编译标志位,用于修改正则表达式的匹配方式,例如是否区分大小写,多行匹配等
# 编译的写法
line = "Cats are smarter than dogs"
rec = re.compile(r'(.*) are (.*?) .*', re.M|re.I)
# flags可以使用多个
rec.findall(line)
# 不编译的写法
re.findall(r'(.*) are (.*?) .*', line)
# 常用方法
re.findall: 找到匹配的所有子串,并将它们作为一个列表返回
re.finditer: 找到匹配的所有子串,并把它们作为一个迭代器返回
re.match: 在开始位置匹配
re.seach: 返回第一个成功的匹配,如果未匹配,则返回None
re.findall:
re.split: 按照能够匹配的子串将 string 分割后返回列表,可以使用re.split来分割字符串,那么这种方式是可以支持多分隔符的,例如 re.split('\d+','one1two2three3four4five5') 将会返回 ['one', 'two', 'three', 'four', 'five', '']
re.sub: 将替换后的结果返回
groups与group: 参见 http://www.runoob.com/python/python-reg-expressions.html
# 贪婪匹配与非贪婪匹配
网友评论