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

Regular Expression in Atom Text Editor, exclude string "abc" from beginning of string

我有一些代码如下:

data[:value] = some_val
data[:value_two] = someval2
data[:total_value_three] = someval3

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

data[:total_value] = some_val
data[:total_value_two] = someval2
data[:total_value_three] = someval3

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

\[:[^total]([A-z_0-9]*)\]

我用这个替换它:

[:total_]

它正在选择正确的数据,但它正在删除第一个字符,也就是说,它变成了 total_alue 而不是 total_value

你要找的是负面展望。你可以写成

\[:(?!total)([A-z_0-9]*)\]

Regex Demo

  • (?!total) 这是一个消极的展望。它检查 : 是否是 而不是 后跟 total.

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

  • [^total] 这是一个否定字符class。它匹配的是一个字符,不是toal