2016-11-25 182 views
0

的开始,我有一些代码如下:正则表达式,排除字符串“abc”的字符串

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

+0

我不明白为什么会有一个Ruby标签。这不仅仅是在编辑器中使用正则表达式。文本可能是Ruby代码的事实似乎无关紧要。 –

回答

1

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

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

Regex Demo

  • (?!total)这是未来一个负的样子。它检查:是否为而不是,然后是total

有什么不对[:[^total]([A-z_0-9]*)\]

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

谢谢你的工作,谢谢你的解释 – user1735921

+0

@ user1735921不客气:) – nu11p01n73R

相关问题