开始 进口重新 print(re.split(r'\W*', '...单词...')) 结束
上述Python代码的输出是: [''、''、'w'、'o'、'r'、'd'、's'、''、'']
在上面给出的输出中,列表中的最后两项为何是空字符串?
我期望输出为 ['', '', 'w', 'o', 'r', 'd', 's', '']
我对预期输出的解释如下:
让我们分解一下
W
文字字符、字母数字 A-Z
、a-z
、0-9
、_
\
不是
*
零次或多次出现
将三者结合起来:
\W*
:零次或多次出现非单词字符
这是一个例子
>>> re.split(r'\W*', ".....")
['', '', '']
它匹配了两次出现:
"....."
:5 个非单词字符""
: 0 个非单词字符导致分裂(用
x
表示):
"x(.....) x"
给予
['', '', '']
因此你的解释是正确的。是的
\W*
确实匹配 ""
和字符串结尾之间的空字符串
...