【发布时间】:2019-04-26 15:23:37
【问题描述】:
我有一行包含逗号的文本。我想捕获逗号之间的数据。
line = "",,,,,,,,,ce: appears to assume ,that\n
我使用的是正则表达式捕获模式 = (""),(.*),(.*),(.*),(.*),(.*),(.*),(.*),(.*),(.*)\\n
输出是:
Output 1
1. ""
2. ,
3. Empty
4. Empty
5. Empty
6. Empty
7. Empty
8. Empty
9. ce: appears to assume
10. that
我想输出为:
Output 2
1. ""
2. Empty
3. Empty
4. Empty
5. Empty
6. Empty
7. Empty
8. Empty
9. Empty
10. ce: appears to assume, that
基本上我正在寻找某种通用的贪婪方法,它忽略文本之间的逗号','
【问题讨论】:
-
您是否有理由要使用正则表达式?简单地拆分(九个)逗号。
line.split(',', 9) -
等等,您希望最后一个逗号的处理方式与其他逗号不同吗?此外,如果您删除最后一个
,(.*),您应该得到您想要的输出... -
您能否阐明确切的标准? “忽略文本之间的逗号”是什么意思?之间还有什么?
-
@AdamSmith:我想使用正则表达式来获得通用解决方案,因为逗号可以出现在文本中两个逗号之间的任何位置。但是是的,输入结构是固定的。我将检查拆分的行为。
-
@C.Nivs 同意。但也可以提出建议,以检查是否可以在 tabula.py 中将分隔符
,重新定义为;。然后使用 python 的 csv 模块进行评估...