正则表达式——点号
上一章讲到了各种字符组,与它相关的还有一个特殊的元字符:点号.。一般文档都说,点号可以匹配"任意字符",点号确实可以匹配"任意字符",常见的数字、字母、各种符号都可以匹配,如例2-10所示。
例2-10 点号.的匹配
re.search(r"^.$", "a") != None # => True re.search(r"^.$", "0") != None # => True re.search(r"^.$", "*") != None # => True
有一个字符不能由点号匹配,就是换行符\n。这个字符平时看不见,却存在,而且在处理时并不能忽略(下一章会给出具体的例子)。
如果非要匹配"任意字符",有两种办法:可以指定使用单行匹配模式,在这种模式下,点号可以匹配换行符(?84);或者使用上一章的介绍"自制"通配字符组[\s\S](也可以使用[\d\D]或[\w\W]),正好涵盖了所有字符。例2-11清楚地说明,这两个办法都可以匹配换行符。
例2-11 换行符的匹配
re.search(r"^.$", "\n") != None # => False #单行模式 re.search(r"(?s)^.$", "\n") != None # => True #自制“通配字符组” re.search(r"^[\s\S]$", "\n") != None # => True