用逗号作为分隔符分隔字符串和其他值。...!

时间:2018-06-29 16:50:36

标签: python split

我正在处理一个项目,在该项目中,将存在一个变量,其中包含用逗号分隔的所有数据类型。

我需要将所有这些东西分开,还需要定义它是哪种类型。

例如:     data =“ Hello,Hey”,123,10.04

我使用split()函数进行分隔,但是即使在字符串“ Hello,Hey”中,它也会分隔逗号

我不需要这样,我只需要用逗号分隔值,而不用字符串中的逗号分隔。

我杀死了我的大脑,但这对我来说仍然是一个问题。因为我是初学者。

预先感谢

4 个答案:

答案 0 :(得分:1)

我正在努力理解您的问题-似乎您有一个字符串,其中的数据以逗号分隔:

data='"Hello, Hey",123,10.04'

您可以使用enter image description here将其拆分,以遵守引号

>>> 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']