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

Regex for replacing 10th comma-separated column in CSV file

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

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

我想用某个数字(比如x)替换value10。所以结果应该是:

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

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

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

^((?:[^,]+,\s*){9})[^,]+

并替换为:

x

((?:[^,]+,\s*){9}) 将匹配和分组前 9 个逗号分隔值,您可以在反向引用 </code> 中使用这些值。 <code>[^,]+ 括号外将匹配要替换的第 10 个值。

RegEx Demo

PS:已验证反向引用在 Sublime Test 3 中也有效。

^(?:[^,]+,\s*){9}\K[^,]+

您可以使用 \K 丢弃 9 个匹配项,然后替换 10th。查看演示。

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