Python 正则表达式匹配包含逗号格式小数的逗号分隔字符串

Python 正则表达式匹配包含逗号格式小数的逗号分隔字符串,python,regex,Python,Regex,我有逗号分隔的字符串,如下所示: "Assistência 24hs com Guincho s/limite de km, 2o. Guincho 100 km no mesmo evento, Pacote de Benefícios HDI, Táxi sem Franquia, Serviços Residenciais, 7 dias de Carro Reserva quando Terceiro (sem ar cond), 7 dias de Carro Reserva, Vid

我有逗号分隔的字符串,如下所示:

"Assistência 24hs com Guincho s/limite de km, 2o. Guincho 100 km no mesmo evento, Pacote de Benefícios HDI, Táxi sem Franquia, Serviços Residenciais, 7 dias de Carro Reserva quando Terceiro (sem ar cond), 7 dias de Carro Reserva, Vidros com franquia de R$ 260,00."

我想用逗号分割字符串,但问题是字符串中有以逗号作为小数分隔符的数字(例如:260,00),我不希望对这些数字进行分割

可以用逗号分隔,后跟空格:

>>> s.split(", ")
['Assist\xc3\xaancia 24hs com Guincho s/limite de km',
 '2o. Guincho 100 km no mesmo evento',
 'Pacote de Benef\xc3\xadcios HDI',
 'T\xc3\xa1xi sem Franquia',
 'Servi\xc3\xa7os Residenciais',
 '7 dias de Carro Reserva quando Terceiro (sem ar cond)',
 '7 dias de Carro Reserva',
 'Vidros com franquia de R$ 260,00.']

请注意,这将从结果字符串中删除逗号和以下空格。

您在这里如履薄冰。在您的示例中,似乎使用“,”作为字段分隔符(逗号空间)会起作用。大多数人会选择引用字符串或使用不同的分隔符(管道、制表符、\x1F等)


这对我来说似乎很脆弱,你很容易在时间上被打破。如果你对别人给你的东西有任何影响,那就先进行对话

以下内容避免了@dsz指出的脆弱性

txt = '''Assistência 24hs com Guincho s/limite de km, 2o. Guincho 100 km no mesmo evento, Pacote de Benefícios HDI, Táxi sem 
Franquia, Serviços Residenciais, 7 dias de Carro Reserva quando Terceiro (sem ar cond), 7 dias de Carro
Reserva, Vidros com franquia de R$ 260,00.'''

import re
re.split("\,[^\d+\.\d+]",txt)
输出:

['Assist\xc3\xaancia 24hs com Guincho s/limite de km',
 '2o. Guincho 100 km no mesmo evento',
 'Pacote de Benef\xc3\xadcios HDI',
 'T\xc3\xa1xi sem Franquia',
 'Servi\xc3\xa7os Residenciais',
 '7 dias de Carro Reserva quando Terceiro (sem ar cond)',
 '7 dias de Carro\nReserva',
 'Vidros com franquia de R$ 260,00.']

要分隔的逗号后面总是有空格吗?如果是的话,你会用它来休息。事实上,一个简单的.split(“,”)就足够了。哇,我太沉迷于正则表达式了,以至于忘了尝试简单的方法。非常感谢。不幸的是,我无法控制源代码格式。这是一个HTML刮刀,我不得不编码的地方缺乏一个适当的API在第一。。。幸运的是,这只是一个有趣的小项目,没有什么专业性或其他东西。:)