有没有办法在记事本++中使用一些正则表达式从csv文件中排除/删除/替换一个字段?
我有一个包含以下数据的csv文件:
'1','data1','data2','data3','data4','data5','data6','data7','data8','data9',
'data10','data11','data12','data13','data14','data15','data16','data17','data18',
'data19','data20','data21','data22','data23','\'data24 with some commas,
here and there and some "double quotes", and fullstops.','data25','data26'
我面临的唯一问题是data24
我遇到\'
然后""
以及,
和.
等一些狂野角色。这在24场特别固定。
为了清楚起见,我在这里输入了一个换行符。但是上面的整个文字都是一线的。
关于如何解决的任何想法?
感谢。
答案 0 :(得分:2)
不可靠。使用一些知道如何处理CSV(OpenOffice)的工具来更改文件可能是最简单的。
如果您仍想使用正则表达式,请查看negative lookbehind,以便只有在单引号前面没有反斜杠时才匹配。
答案 1 :(得分:0)
我不确定我是否理解正确。要删除字段编号24吗?
仅从左侧获取 L场,从右侧获取 R场(因此,排除字段L + 1,...,NF - R - 1,其中NF是字段的数量),不要担心中间字段中的奇怪字符,您可以使用以下awk命令:
awk'BEGIN {FS =“,”; L = 23; R = 2} {for(i = 1; i&lt; = L + 1; i ++)printf($ i); for(i = NF-R + 1; i <= NF; i ++)printf($ i);打印'\ n'}'your_file
作为Dave M mentioned,您可以从here获取适用于Windows的cut(和awk)等工具(此特定包中包含gawk,该命令也可以使用相同的命令)
编辑:是的,在sourceforge下载链接似乎无法正常工作。你可以从这里获得awk并剪切:
答案 2 :(得分:0)
我建议使用类似Ruby的CSV库来读取文件,以编程方式处理,然后再将其写出来。