首页 > 解决方案 > 使用正则表达式将引号添加到分隔列表

问题描述

我有一个要转换为熊猫数据框的复制列表。但是,当我复制测试时,我得到的是原始值而不是字符串。即 foo, bar, buzz,而不是" foo", "bar", "buzz"列表,然后以我不想用引号括起来的数字结尾。我能够选择 2 个逗号之间的文本,包括一个逗号 using ,[^,]+,但我不想包含逗号,因为我想用引号包裹的版本替换里面的文本。我不能简单地从正则表达式中排除数字,即,[^,0-9]+因为某些类别中嵌入了数字(例如 iPhone-6s 或 Toyota Rav4)。我将如何做到这一点?

标签: pythonregex

解决方案


假设您的 CSV 输入是单个字符串,您可以尝试:

inp = "foo, bar, buzz, make-model"
output = re.sub(r'\b([\w-]+)\b', '"\\1"', inp)
print(output)

这打印:

"foo", "bar", "buzz", "make-model"

推荐阅读