Python正则表达式用\ W分割

时间:2017-07-27 05:23:39

标签: python unicode

在Python文档中,我遇到了以下代码片段

>>> re.split('\W+', 'Words, words, words.')
['Words', 'words', 'words', '']
>>> re.split('(\W+)', 'Words, words, words.')
['Words', ', ', 'words', ', ', 'words', '.', '']

令我困惑的是\ W匹配任何不是Unicode字符的字符,但','是Unicode字符。括号是什么意思?我知道它与一组相匹配,但模式中只有一组。为什么','也会回归?

1 个答案:

答案 0 :(得分:2)

"任何不是Unicode字符的字符"是一个字符是的一部分:基本上是字母或数字。

逗号不能成为一个词的一部分。

逗号包含在结果列表中,因为拆分正则表达式用于括号(在拆分正则表达式中定义)。这就是re.split的工作原理(这是您的两个代码段之间的区别)