5-2
正则表达式(regular expression),是使用单个字符串来描述、匹配一系列符合某个语法的字符串。在python中对应的是re模块。待匹配模式和字符串可以采用unicode编码或者普通8-位编码,但是两者不能混用,即如果待匹配模式是Unicode编码,则字符串也必须是Unicode编码。
我们知道,正则表达式采用反斜杠“\”来表示一些特殊字符(在正则表达式中有特殊意义的字符),这会造成一些困扰。比如,我们需要在正则表达式中匹配反斜杠“\”,那么我们的正则表达式中则需要表示为“\\”,则在编程语言中我们则需要“\\\\”(每两个转义成正则表达式中的一个"\")。而在python中,用raw string表示则不再将"\"看成是特殊字符,比如上面在编程语言中可以写成r"\\",再比如r"\n"则表示为"\"和"n"两个字符。
^' :匹配字符串开头。当MULTILINE模式被指定时,可以匹配多行的开头。
‘$’ :匹配字符串末尾,或者在字符串末尾的换行符之前;在MULTILINE模式时,匹配每一行的末尾。
‘*’ :对RE中之前的内容重复0到n次,如ab*,可以匹配'a','ab','abbbb'等。
‘+’ :对RE中之前的内容重复1到n次,如ab+,可以匹配'ab','abbbb',但是不能匹配'a'。
‘?’ :对RE中之前的内容重复0或1次,如ab?,可以匹配'a'或'ab',但'abbbb'则不能匹配。