在 Python 文档中,我遇到了以下代码片段
>>> re.split('\W+', 'Words, words, words.')
['Words', 'words', 'words', '']
>>> re.split('(\W+)', 'Words, words, words.')
['Words', ', ', 'words', ', ', 'words', '.', '']
令我感到困惑的是\W 匹配任何不是 Unicode 单词字符的字符,但是 ',' 是 Unicode 字符。括号是什么意思?我知道它匹配一个组,但模式中只有一个组。为什么','也是return?
请您参考如下方法:
“任何不是 Unicode 单词字符的字符”是属于单词的字符:基本上是字母或数字。
逗号不能是单词的一部分。
并且逗号包含在结果列表中,因为拆分正则表达式位于括号中(在拆分正则表达式中定义一个组)。这就是 re.split 的工作原理(这就是您的 2 个代码片段之间的区别)
