我有一个CSV文本文件,其布局与下面的
类似COL1, COL2, COL3, ADDRESS1, COL5, COL6, COL7
dsada34sdsad5asdas, dasd32sadasd232as, fioejwfw667eoefw, 1 Terrace Lane, goirgngniogri,giergrngernn, gireneogner
我正在尝试使用正则表达式在ADDRESS1中的所有内容周围放置引号,所以我似乎能找到其中的内容的唯一方法是在第三个逗号后我的地址开始并且3个逗号从结束是我的地址结束的地方。
我目前使用^([^,] ),([^,] ),([^,] *),它从每行的开头选择到第三个逗号。但是替换它然后删除所有选择而不是附加"标记到地址的开头。然后我还没有想出如何做同样的事情,但是从每一行的结尾反过来,所以我认为这将是一个两步的过程。
更新
ewwefeuuiofew99,6743964398hfjkef,gfbweifgbewifew665465,PARTOFADDRESS1,,,,, PARTOFADDRESS2,,, PARTOFADDRESS3,PARTOFADDRESS4, PARTOFADDRESS5, PARTOFADDRESS6,098304830gdsgsd,2014-08-08 00:00,,Yes
正如你所看到的,在整个数据中有很多逗号浮动(不幸的是,我是如何得到它的)所以在你的例子中它只突出显示 PARTOFADDRESS1 。
答案 0 :(得分:2)
尝试使用:
找到:^((?:[^,]+,){3})([^,]+)
替换为:$1"$2"
根据评论更新:
这就是你想要的吗?
找到:^((?:[^,]+,){3})(.+)((?:,[^,]*){3})$
替换为:$1"$2"$3