【问题标题】:re.split(r'\W+', 'Words, words, words.') output ['Words', 'words', 'words', ''] [duplicate]re.split(r'\W+', 'Words, words, words.') 输出 ['Words', 'words', 'words', ''] [重复]
【发布时间】:2018-08-23 06:14:10
【问题描述】:

我在 Python 官方文档中阅读了 regex 参考中的示例 re.split()

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

我对输出感到困惑,我猜它会产生

[",",  ",",  ","]

我认为以下内容清晰:

In [100]: re.split(r',', 'Words, words, words.')
Out[100]: ['Words', ' words', ' words.']

(r'\W+', 'Words, words, words.' 怎么会输出匹配的内容?

【问题讨论】:

    标签: python regex


    【解决方案1】:

    \W 字符代表任何字词 (\w),即任何非 [a-zA-Z0-9_]

    在您的情况下,, 匹配 \W+ 表达式(一个或多个不是字母数字字符或下划线的字符),这就是您最终得到字母输出的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 2021-06-30
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多