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

相關問題