用于替换CSV文件中第10个逗号分隔列的正则表达式

ron*_*ong 6 regex csv sublimetext

我有一些包含数万行格式的文件:

value1, value2, value3, value4, value5, value6, value7, value8, value9, value10
value1, value2, value3, value4, value5, value6, value7, value8, value9, value10
value1, value2, value3, value4, value5, value6, value7, value8, value9, value10
Run Code Online (Sandbox Code Playgroud)

我想替换value10一定数量(比方说x).所以结果应该是:

value1, value2, value3, value4, value5, value6, value7, value8, value9, x
value1, value2, value3, value4, value5, value6, value7, value8, value9, x
value1, value2, value3, value4, value5, value6, value7, value8, value9, x
Run Code Online (Sandbox Code Playgroud)

我想用正则表达式来做这件事.我有Sublime Text作为文本编辑器.

anu*_*ava 6

您可以使用此正则表达式进行搜索:

^((?:[^,]+,\s*){9})[^,]+
Run Code Online (Sandbox Code Playgroud)

并替换为:

$1x
Run Code Online (Sandbox Code Playgroud)

((?:[^,]+,\s*){9})将匹配并分组可在反向引用中使用的前9个逗号分隔的值$1[^,]+外括号将匹配要替换的第十个值。

正则演示

PS:验证了反向引用也适用Sublime Test 3


vks*_*vks 5

^(?:[^,]+,\s*){9}\K[^,]+
Run Code Online (Sandbox Code Playgroud)

您可以使用\K放弃9匹配项,然后替换。请10th参见演示。

https://regex101.com/r/kN5uS9/3

在此处输入图片说明