2016-11-25 15 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 

私はこの正規表現を使用していることを置き換えるために、テキストエディタ、 に、このようなコードの多くを持っている:

を0

そして、私はこれで置き換えています:

[: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]これは無効な文字クラスです。一致するのは1文字で、tまたはoまたはaまたはlではありません。
+0

ありがとうとありがとう、それの説明のためにありがとう – user1735921

+0

@ user1735921あなたは歓迎です:) – nu11p01n73R