gpt4 book ai didi

python - re.split ("", string) 和 re.split ("\s+", string) 之间的区别?

转载 作者:行者123 更新时间:2023-12-03 22:56:42 27 4
gpt4 key购买 nike

我目前正在研究正则表达式并遇到了一个查询。
所以问题的标题是我想要找出的。我想从 \s表示空白,re.split(" ", string)re.split("\s+", string)将给出相同的值,如下所示:

>>> import re
>>> a = re.split(" ", "Why is this wrong")
>>> a
["Why", "is", "this", "wrong"]
>>> import re
>>> a = re.split("\s+", "Why is this wrong")
>>> a
["Why", "is", "this", "wrong"]
这两个给出了相同的答案,所以我认为它们是同一回事。然而,事实证明这些是不同的。在什么情况下会有所不同?我在这里错过了什么让我失明?

最佳答案

根据您的示例,这看起来很相似。
关于 ' ' 的 split (单个空格)正是这样做的 - 它在单个空格上拆分。拆分时,连续的空格将导致空的“匹配项”。
关于 '\s+' 的 split 还将根据这些字符的多次出现进行拆分,它包括其他空格,然后是“纯空格”:

import re

a = re.split(" ", "Why is this \t \t wrong")
b = re.split("\s+", "Why is this \t \t wrong")

print(a)
print(b)
输出:
# re.split(" ",data)
['Why', '', '', '', 'is', 'this', '', '\t', '\t', '', 'wrong']

# re.split("\s+",data)
['Why', 'is', 'this', 'wrong']
文档:

\s
Matches any whitespace character; this is equivalent to the class [ \t\n\r\f\v]. (https://docs.python.org/3/howto/regex.html#matching-characters)

关于python - re.split ("", string) 和 re.split ("\s+", string) 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65438868/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com