让我通过说我是一个完整的业余爱好者来谈RegEx,并且在几天前才开始。我试图解决一个格式化文件的问题,并且遇到了特定类型的数据。输入文件的结构是这样的:正则表达式部分字符串CSV匹配
Two words,Word,Word,Word,"Number, number"
我需要做的是格式,像这样......
"Two words","Word",Word","Word","Number, number"
我有过
s/,/","/g
工作正则表达式模式,但它也会替换已经引用的数字,数字部分中的逗号,这会导致字段分隔并中断文件。实际上,我需要修改我的模式以用逗号“,”[逗号引用]替换逗号,但只有当该逗号后面没有空格时。请注意,其他字段在逗号后面永远不会有空格,只有分隔号码列表。
我设法写上去
s/,[A-Za-z0-9]/","/g
其中,同时匹配相应的字符串,将取代逗号和下面的字母。我听说过反向引用,认为这可能是我需要使用的?我的理解是,
s/(,)[A-Za-z0-9]\b
应该工作,但它没有。
任何人有想法?
我想通过CSV解析器来做到这一点,但我被赋予了这些文件,因为它们没有我在实际格式中的任何说法。所以我卡在RegEx上摆弄。 – 2008-10-08 03:23:14
s /,(?!)/“,”/ 工作完美,谢谢。我使用Perl,因此我可以在发送文件时针对这些文件运行脚本。保存在解析器中并在那里使用。此外,无论如何,我还是想学习Perl和RegEx,这样一举两得。谢谢你的帮助 :)。 – 2008-10-08 04:28:39