【发布时间】:2015-09-07 06:50:49
【问题描述】:
我需要确保字符串具有逗号分隔值。我读的字符串可能有空格分隔的值。
- 我的输入字符串中可能缺少一些逗号,也就是说,如果存在任何没有逗号的空格分隔值,我必须包含一个逗号
- 我不应该对单引号或双引号内的字符串进行任何更改。这些带引号的值可以包含除引号之外的任何字母数字。
一个示例字符串是:
""" 1, ' unchanged 1' " unchanged 2 " 2.009, -2e15 """
我应该在“not this1”和“not this 2”之后加上逗号。
所以我的结果字符串应该是:
"""1,' unchanged 1'," unchanged 2 ",2.009,-2e15"""
我一直在尝试s1|s2|(s3) 类型的正则表达式。但未能完成任务。
字符串可以有不同数量的值以逗号分隔。
【问题讨论】:
-
你的意思是像
(re.sub(r"([\'\"].*?[\'\"])\s", r"\1, ",s)这样的吗? -
不同的字符串可以有不同数量的值以逗号分隔。例如。如果我将字符串更改为 """ 1, ' changed 1' " changed 2 " 2, 2 45""" 帕德莱克的 re 似乎不起作用。
-
PyParsing 可能是一种更易读的方法,如果这是一个选项...?
-
我将从一个文件中读取这些行,该文件的行数在几十到大约 100k 之间。如果 PyParsing 不会显着使我的整个过程变慢,那么它是我的一个选择。
-
""" 1, ' unchanged 1' " unchanged 2 " 2, 2 45"""应该输出什么?
标签: python regex python-2.7