使用捕获括号和"不在"在一个有用的正则表达式搜索/替换?

时间:2017-09-12 10:08:20

标签: regex visual-studio-code regex-negation

我想在csv文件中搜索并替换部分数字,但不包括搜索到的sting前面有逗号的条目(参见下图)。我想放弃" 30"从绿色圆圈突出显示的每个数字,但不是" 30"使用替换全部时由红色圆圈突出显示。

我已尝试,30[0-9](.+),30[^,](.+)搜索字符串,但不知道如何在替换字段中加入[0-9][^,] 。我可以为替换术语提出的最好的是,$1但是它取代了" 1" in",30102,"生产",02,"而不是我需要的,",102,"。

我可以添加到替换术语中以包含缺少的字符,还是有另一种更优雅的方法来执行此操作?

enter image description here

1 个答案:

答案 0 :(得分:1)

您要删除前面带有30的{​​{1}},后跟一个数字。

使用

,

并替换为,30(\d) 。请参阅regex demo

,$1会将数字捕获到第1组,而(\d)会在结果中恢复该数字。

如果您想在逗号之后和任何单词char之前删除$1(还包括30后跟30,数字或字母的情况),请使用

_

并仅使用,30\B 替换。请参阅another regex demo