import re
re模块中的函数:
1. re.compile(pattern[,flags]):根据包含正则表达式的字符串创建模式对象。
2. re.findall(pattern,string):列出所有匹配项。返回一个列表。
3. re.sarch(pattern,string[,flags]):只寻找出第一个匹配项。
4. re.match(pattern,string[,flags]):只在字符串的开头处匹配,只匹配第一个匹配项。
5. re.split(pattern,string[,maxsplit=0]:用于分割字符串。
6. re.sub(pat, repl, string[,count=0]):将字符串中所有pat的匹配项用repl替换。
7. re.escape(string):将字符串中所有特殊正则表达式字符进行转义。
re匹配对象的方法:
通过re模块中的函数,当找到匹配项时,会返回一个MatchObject对象,可以对这些对象应用一些方法。
1. group():在正则中一对括号代表一组,组的序号取决于它左侧的括号数量。组0就是整个模式。
例:‘There (was a (wee)(cooper)) who (lived in Fyfe)'
包含下面这些组:
0 There was a wee cooper who lived in Fyfe
1 was a wee cooper
2 wee
3 cooper
4 lived in Fyfe
例2:
>>>m = re.match(r"(..)+", "a1b2c3")
>>>m.group(1)
'c3'
这里只有一个括号,所以是一个group....这个group匹配了3次,一个group的每一次匹配覆盖上一次的匹配结果。
2. start([group]):返回给定组匹配项的开始索引
3. end([group]):返回给定组匹配项的结束索引加+1
4. span([group]):以元组的形式返回开始和结束索引。
贪婪和非贪婪模式:
*?,+?,??,{m,n}? 前面的*,+,?等都是贪婪匹配,也就是尽可能匹配,后面加?号使其变成惰性匹配。
正则表达式中的特殊字符:
预定义字符集: