gpt4 book ai didi

python - 在具有不同分隔符和值内容的标签/值列表中拆分字符串

转载 作者:太空宇宙 更新时间:2023-11-04 07:50:34 25 4
gpt4 key购买 nike

我有一个带有变量/值列表的字符串,例如。

string = " var1 = 20, var2  = hello    var3 =345.34  var4 = I have lost 
2,5 billions, var5 = Bill"

元组的分隔可以是“,”或者任意数量的空格,元组的标识始终是“=”挑战在于一些值包含描述性字符串,其中逗号作为千位分隔符或最差的数字分隔符。

我尝试使用 python 正则表达式的 re.sub 和 re.findall 序列,但我无法正确拆分 var4 元组,在代码下方:

import re
string = " var1 = 20, var2 = hello var3 =345.34 var4 = I lost 2,5
billions, var5 = Bill"

t = re.sub('(\=\s+)', '=', string)
t = re.sub('(\s+\=)', '=', t)
result = re.findall("[A-Za-z0-9(,)\=\.]+", t)

print(result)
['var1=20,', 'var2=hello', 'var3=345.34', 'var4=I', 'lost', '2,5',
'billions,', 'var5=Bill']

我的预期结果是

['var1=20', 'var2=hello', 'var3=345.34', 'var4=I lost 2,5 billions', 'var5=Bill']

最佳答案

你可以使用

re.split(r',?\s+(?=\w+=)', re.sub(r'\s*=\s*', '=', s.strip()))

re.sub(r'\s*=\s*', '=', s.strip()) 将在剥离后删除 = 周围的空格字符串中的前导/尾随空格和 r',?\s+(?=\w+=)' with re.split 将在可选逗号处拆分字符串,然后1 个或多个空格,后跟 1 个以上的字符,然后是 =

参见 Python demo :

import re
s = " var1 = 20, var2 = hello var3 =345.34 var4 = I lost 2,5 billions, var5 = Bill"
result = re.split(r",?\s+(?=\w+=)", re.sub(r'\s*=\s*', '=', s.strip()))
print(result)
# => ['var1=20', 'var2=hello', 'var3=345.34', 'var4=I lost 2,5 billions', 'var5=Bill']

关于python - 在具有不同分隔符和值内容的标签/值列表中拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55511907/

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