'(',')'用作RE中的分组。但是,我不容易理解第二个结果是如何产生的?谢谢!
In: re.split(r'\W+', 'Words, words, words.')
Out: ['Words', 'words', 'words', '']
In: re.split(r'(\W+)', 'Words, words, words.')
Out: ['Words', ', ', 'words', ', ', 'words', '.', '']
从re docs开始:通过出现的模式分割字符串。如果在模式中使用了捕获括号,则模式中所有组的文本也将作为结果列表的一部分返回。
没有捕获组,则将正则表达式从拆分字符串中删除。在第一个示例中,", "
与\W+
匹配,因此字符串被分割并且匹配的子字符串被舍弃。
[具有捕获组(在第一种情况下,在分割字符串之后用括号括起来的(\W+)
,将附加匹配的子字符串。