我有一些代码如下:
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_$1]
它正在选择正确的数据,但它正在删除第一个字符,也就是说,它正在变成 total_alue
而不是 total_value
。
最佳答案
您正在寻找的是负面展望。你可以把它写成
\[:(?!total)([A-z_0-9]*)\]
(?!total)
这是一个消极的展望。它检查:
是否不后跟总数
。
[:[^total]([A-z_0-9]*)\]
有什么问题?
[^total]
这是一个取反的字符类。它匹配的是一个字符,不是t
或o
或a
或l
。
关于regex - Atom 文本编辑器中的正则表达式,从字符串开头排除字符串 "abc",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40798179/