gpt4 book ai didi

python - 为什么re.split返回的list开头和结尾多了一个空串?

转载 作者:太空狗 更新时间:2023-10-29 21:46:02 25 4
gpt4 key购买 nike

我正在尝试获取一串整数和/或 float 并创建一个 float 列表。该字符串将包含这些需要忽略的括号。我正在使用 re.split,但如果我的字符串以括号开头和结尾,我会得到额外的空字符串。这是为什么?

代码:

import re
x = "[1 2 3 4][2 3 4 5]"
y = "1 2 3 4][2 3 4 5"
p = re.compile(r'[^\d\.]+')
print p.split(x)
print p.split(y)

输出:

['', '1', '2', '3', '4', '2', '3', '4', '5', '']
['1', '2', '3', '4', '2', '3', '4', '5']

最佳答案

如果您使用 re.split,则字符串开头或结尾的定界符会导致结果中数组的开头或结尾为空字符串。

如果您不想这样做,请将 re.findall 与匹配每个不包含定界符的序列的正则表达式一起使用。

例子:

import re

a = '[1 2 3 4]'
print(re.split(r'[^\d]+', a))
print(re.findall(r'[\d]+', a))

输出:

['', '1', '2', '3', '4', '']
['1', '2', '3', '4']

正如其他人在他们的回答中指出的那样,这可能不是这个问题的完美解决方案,但它是对问题标题中描述的问题的一般回答,我也必须解决这个问题我使用 Google 发现了这个问题。

关于python - 为什么re.split返回的list开头和结尾多了一个空串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30924509/

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