我正在处理一个项目,在该项目中,将存在一个变量,其中包含用逗号分隔的所有数据类型。
我需要将所有这些东西分开,还需要定义它是哪种类型。
例如: data =“ Hello,Hey”,123,10.04
我使用split()函数进行分隔,但是即使在字符串“ Hello,Hey”中,它也会分隔逗号
我不需要这样,我只需要用逗号分隔值,而不用字符串中的逗号分隔。
我杀死了我的大脑,但这对我来说仍然是一个问题。因为我是初学者。
预先感谢
答案 0 :(得分:1)
我正在努力理解您的问题-似乎您有一个字符串,其中的数据以逗号分隔:
data='"Hello, Hey",123,10.04'
>>> import shlex
>>> s = shlex.shlex(data)
>>> s.whitespace = ','
>>> s.wordchars += '.'
>>> print(list(s))
['"Hello, Hey"', '123', '10.04']
答案 1 :(得分:0)
您可以像这样使用re
模块:
[m.group(1) or m.group(2) for m in re.finditer(r'"([^"]*)",?|([^,]*),?', '"Hello, Hey",123,10.04')]
答案 2 :(得分:0)
您可以将re.findall
与正则表达式模式"[^"]+"|[^,]+
一起使用:
import re
print(re.findall(r'"[^"]+"|[^,]+', '"Hello, Hey",123,10.04'))
这将输出:
['"Hello, Hey"', '123', '10.04']
答案 3 :(得分:-1)
您可以使用re.split
分割逗号前的双引号或逗号后跟数字的组合
import re
data='"Hello, Hey",123,10.04'
re.split(r'(?<="),|,(?=\d)', data)
['"Hello, Hey"', '123', '10.04']