在有用的正则表达式 search/replace 中一起使用捕获括号和 "not in"?

Using capturing parentheses and "not in" together in a useful regex search/replace?

我想搜索和替换 csv 文件中的部分数字,但不包括搜索字符串前面有逗号的条目(见下图)。我想从绿色圆圈突出显示的每个数字中删除“30”,但在使用全部替换时不删除红色圆圈突出显示的“30”。

我已尝试使用 ,30[0-9](.+),30[^,](.+) 作为搜索字符串,但不知道如何在替换字段中包含 [0-9][^,]。我能想到的最好的替换项是 ,,但它替换了“,30102”中的“1”以生成“,02”,而不是我需要的“,102,”。

我可以在替换项中添加一些内容以包含丢失的字符,还是有另一种更优雅的方法来执行此操作?

您想删除前面有 , 后面有一个数字的 30

使用

,30(\d)

并替换为 ,。见 regex demo.

(\d) 将捕获一个数字到第 1 组,</code> 将在结果中恢复它。</p> <p>如果要删除逗号之后和任何字符字符之前的 <code>30(还包括 30 后跟 _、数字或字母的情况),请使用

,30\B

并仅替换为 ,。参见 another regex demo