最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【教程】详解Python正则表达式之:\s 匹配任一空白字符

Python re crifan 16167浏览 0评论

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 匹配任一空白字符

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
87 queries in 0.156 seconds, using 22.07MB memory