2016-11-25 4 views
0

У меня есть некоторый код следующим образом:Regular Expression в Atom текстового редактора, исключить строку «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] Это отрицательный класс символов. Он соответствует одному символу, который не является t или o или a или l.
+0

спасибо, что сработало и спасибо за объяснение этого – user1735921

+0

@ user1735921 Добро пожаловать :) – nu11p01n73R