Python 2.7的官方手册中的解释是:
\s When the LOCALE and UNICODE flags are not specified, matches any whitespace character; this is equivalent to the set [ \t\n\r\f\v]. With LOCALE, it will match this set plus whatever characters are defined as space for the current locale. If UNICODE is set, this will match the characters [ \t\n\r\f\v] plus whatever is classified as space in the Unicode character properties database.
下面就来详细解释一下其含义:
1.如果两个标志:
【教程】详解Python正则表达式之:re.LOCALE re.L 本地化标志
【教程】详解Python正则表达式之:re.UNICODE re.U 统一码标志
都没有设置的情况下,此\s匹配 任意(单个)空白字符。
此处所谓的空白字符,或者说,此时(没有添加re.LOCALE和re.UNICODE时),等价于:
[ \t\n\r\f\v]
注意:
上面的\t前面,还有一个空格字符。所谓空格字符,就是你通过键盘上面的空格键,按了一下空格键,而输入的空格字符,由于其特殊性,导致即使输入了,也看不见,所以不小心,就被漏掉了。所以此处特此提醒一下。
2.如果定义了re.LOCALE的前提下,此时\s的含义就是:
上面所说的那个集合 + (对于当前locale中)也被定义为空格字符的那些(特殊)字符
即:
[ \t\n\r\f\v] + 当前locale中也被定义为空格字符的那些字符
关于不同的locale中也被定义为空格字符的那些字符,到底是哪些,待以后再整理。
3.如果定义了re.UNICODE标志的话,那么\s含义为:
上面所说的那个集合 + (对于UNICODE编码中)也被定义为空格字符的那些(特殊)字符
即:
[ \t\n\r\f\v] + UNICODE中,也被定义为空格字符的那些字符
关于UNICODE中也被定义为空格字符的那些字符,到底是哪些,待以后再整理。
转载请注明:在路上 » 【教程】详解Python正则表达式之:\s 匹配任一空白字符