正则表达式——点号

上一章讲到了各种字符组,与它相关的还有一个特殊的元字符:点号.。一般文档都说,点号可以匹配"任意字符",点号确实可以匹配"任意字符",常见的数字、字母、各种符号都可以匹配,如例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  
posted @ 2018-10-19 16:23  gaara724  阅读(24762)  评论(0编辑  收藏  举报