Skip to main content
 首页 » 编程设计

Python正则表达式用\W分割

2024年10月01日3552php

在 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 个代码片段之间的区别)