Atom 文本编辑器中的正则表达式,从字符串开头排除字符串“abc”

use*_*921 3 regex atom-editor

我有一些代码如下:

data[:value] = some_val
data[:value_two] = someval2
data[:total_value_three] = someval3
Run Code Online (Sandbox Code Playgroud)

我想替换所有不包括 total 的代码,我想要以下结果:

data[:total_value] = some_val
data[:total_value_two] = someval2
data[:total_value_three] = someval3
Run Code Online (Sandbox Code Playgroud)

我在文本编辑器中有很多这样的代码,用来代替我使用这个正则表达式的代码:

\[:[^total]([A-z_0-9]*)\]
Run Code Online (Sandbox Code Playgroud)

我用这个替换它:

[:total_$1]
Run Code Online (Sandbox Code Playgroud)

它正在选择正确的数据,但它正在删除第一个字符,即它正在变为total_alue而不是total_value。

nu1*_*73R 5

您正在寻找的是负面展望。你可以把它写成

\[:(?!total)([A-z_0-9]*)\]
Run Code Online (Sandbox Code Playgroud)

正则表达式演示

  • (?!total)这是一个消极的前景。它检查是否:是没有后跟一个total。

有什么问题[:[^total]([A-z_0-9]*)\]?

  • [^total]这是一个否定字符类。它匹配的是一个字符,它不是toro或aor l。