我有一些代码如下:
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。
您正在寻找的是负面展望。你可以把它写成
\[:(?!total)([A-z_0-9]*)\]
Run Code Online (Sandbox Code Playgroud)
(?!total)这是一个消极的前景。它检查是否:是没有后跟一个total。有什么问题[:[^total]([A-z_0-9]*)\]?
[^total]这是一个否定字符类。它匹配的是一个字符,它不是toro或aor l。