鬼少 发表于 2024-12-2 21:03:20

正则表达‘\w’和‘\w+’区别

re.findall(r'\w','fishc com!fishc.com(fishc)')
['f', 'i', 's', 'h', 'c', 'c', 'o', 'm', 'f', 'i', 's', 'h', 'c', 'c', 'o', 'm', 'f', 'i', 's', 'h', 'c']
re.findall(r'\w+','fishc com!fishc.com(fishc)')
['fishc', 'com', 'fishc', 'com', 'fishc']

FishC 发表于 2024-12-2 21:10:16


正则表达式中,`\w` 和 `\w+` 有什么区别?


`re.findall(r'\w', 'fishc com!fishc.com(fishc)')` 的结果为每个匹配的单个字母、数字或下划线,因为 `\w` 代表匹配一个字母、数字或下划线字符。因此,结果将是每一个字符单独成为一个元素的列表:

['f', 'i', 's', 'h', 'c', 'c', 'o', 'm', 'f', 'i', 's', 'h', 'c', 'c', 'o', 'm', 'f', 'i', 's', 'h', 'c']


而 `re.findall(r'\w+', 'fishc com!fishc.com(fishc)')` 的结果为匹配连续的字母、数字或下划线字符串,因为 `\w+` 代表匹配一个或多个连续的字母、数字或下划线字符。因此,结果将是每一个完整单词成为一个元素的列表:

['fishc', 'com', 'fishc', 'com', 'fishc']


总结来说,`\w` 会逐个字符匹配,而 `\w+` 则会匹配完整的单词或连续的字符组。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 正则表达‘\w’和‘\w+’区别