![]() |
1
7
虽然可能会结合一些预处理,但使用
在复杂的分析案例中, pyparsing 总是一个很好的包装。如果这不是一次性的情况,它很可能会产生最直接和可维护的结果,但可能会花费一些额外的前期工作。但是,考虑到投资需要迅速得到回报,因为您节省了调试regex解决方案以处理角落案例的额外工作… 您可以很容易地找到基于pyparsing的csv解析示例,使用 this question 也许足够让你开始了。 |
![]() |
2
9
而
编辑: 要验证行,可以使用上面的regex进行少量添加:
|
![]() |
3
4
python有一个标准的库模块来读取csv文件:
为您的示例输入此打印
编辑: 您需要添加skipinitalspace=true,以便在您提供的额外示例的双引号之前允许空格。还不确定单引号。
|
![]() |
4
2
无法给出答案,因为您尚未完全指定编写器正在使用的协议。 它显然包含如下规则:
如果一个字段包含任何逗号或单引号,请用双引号将其引起来。
未提及的是作者在这些情况下所做的:
您还提到了“引号只能用空格来前置或尾随”——当然您的意思是也允许使用逗号,否则您的示例
你的数据是如何编码的? |
![]() |
5
1
这听起来可能太简单了,但实际上从你所要查找的字符串的外观来看,它包含[A-ZA-Z0-9][“']+[A-ZA-Z0-9],我的意思是,没有对数据进行深入测试,实际上你要查找的是字母之间的引号或双引号(或任何组合)(你也可以在其中添加数字)。 根据你的要求,这真的不重要,它是一个csv,重要的是你的数据不符合。我相信只要搜索一个字母,然后搜索一个或多个“或”和另一个字母的组合。 现在,您是想得到一个“数量”还是仅仅是一个包含它的行的打印输出,这样您就知道要返回哪个行并修复它了? 很抱歉,我不知道python regex,但在perl中,它看起来像这样:
只要简单地把它转换成当你看一行的时候。 如果我误解了这个问题,我很抱歉 希望有帮助! |
![]() |
6
0
如果您的目标是将数据转换为XML(或JSON或YAML),请查看 this example 对于一个 Gelatin 产生以下输出的语法:
注意,明胶还有一个python API:
|
![]() |
DotFX · RegEx捕获关键字前但括号后的所有内容 4 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 4 月前 |
![]() |
iato · 确保正则表达式不从命名材料中的数字中提取 5 月前 |
![]() |
vr8ce · 非成对标记中特定字符的正则表达式 5 月前 |
![]() |
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 5 月前 |
![]() |
Carsten · 使用最近的搜索模式更改文本块 5 月前 |