1. 正则表达式
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。(正则表达式式可以匹配文本片段的模式)
通配符
使用一些特殊字符来匹配多于一个的字符串。
对特殊字符进行转义
为了让特殊字符表现得像普通字符一样,需要对它进行转义(escape)。
字符集
用中括号括住字符串来创建字符集(character set)。字符集可以匹配它所包含的任意字符(字符集只能匹配一个这样的字符)。反转字符集,可以在开头使用^字符,意思是匹配除了后面的字符的字符。
选择符和子模式
选择符“或”(|)
用圆括号括起需要的部分,称为子模式。
可选项和重复子模式
在子模式后面加上问号,就变成了可选项。
字符串的开始和结尾
^和$
2. Python的正则表达式模块re(regular expression)
re中的重要函数compile search match split findall sub escape
re.compile将正则表达式(以字符串书写的)转换成模式对象,可以实现更有效率的匹配。
compile(pattern,flags=0)
re.search会在给定字符串中寻找第一个匹配给定正则表达式的子字符串。
search(pattern,string[,flags=0])
re.match会在给定字符串的开头匹配正则表达式。
match(pattern,string[,flags=0])
re.split会根据模式的匹配项来分割字符串。
split(pattern,string[,max=0])
re.findall以列表形式返回给定模式的所有匹配项。
findall(pattern,string[,flags])
re.sub使用给定的替换内容将匹配模式的子字符串(最左端并且非重叠的子字符串)替换掉。
sub(pattern,repl,string[,max=0])
group([n])和groups()
对正则表达式返回的结果调用group()和groups()函数。
group()通常用来显示所有匹配部分,也可用来获取个别匹配的子组。groups()用来获得一个包含所有匹配子组的元组。