正则表达式,排除字符串“abc”的字符串
问题描述:
的开始,我有一些代码如下:正则表达式,排除字符串“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
。
答
您正在寻找的是负面展望。你可以把它写成
\[:(?!total)([A-z_0-9]*)\]
-
(?!total)
这是未来一个负的样子。它检查:
是否为而不是,然后是total
。
有什么不对[:[^total]([A-z_0-9]*)\]
?
-
[^total]
这是否定字符类。它匹配的是一个字符,它不是t
或o
或a
或l
。
+0
谢谢你的工作,谢谢你的解释 – user1735921
+0
@ user1735921不客气:) – nu11p01n73R
我不明白为什么会有一个Ruby标签。这不仅仅是在编辑器中使用正则表达式。文本可能是Ruby代码的事实似乎无关紧要。 –