1

Использование любого потокового редактора (или vim)- это быстрый, эффективный и простой способ замены, но только внутри уже подобранного шаблона. например :

Замените все параметры "foo" на "bar", но только для функции "func":

test(foo, baz) func(foo) truc(foo) func(test, foo)

->

test(foo, baz) func(bar) truc(foo) func(test, bar)

будет сделано с помощью первого поиска: /func\((.*)\)/

...А затем внутри захваченной группы (или хотя бы полного совпадения) выполните s/foo/bar/g

ПРИМЕЧАНИЕ: я читал, используя sed, чтобы заменить два шаблона в большем шаблоне

Но я ищу более простой способ, не обязательно используя Sed

1 ответ1

0

С помощью редактора Notepad++, я думаю, он также должен работать с Siblimetext:

  • Ctrl+H
  • Найдите что: \bfunc\([^)]*\K\bfoo\b
  • Заменить на: bar
  • UNcheck Match case
  • проверить обернуть
  • проверьте регулярное выражение
  • Заменить все

Объяснение:

\bfunc\(    # literally func(, word boundary to avoid abcfunc
[^)]*       # 0 or more not closing parenthese
\K          # forget all we have seen until this position
\bfoo\b     # foo surrounded with word boundaries

Результат для данного примера:

test(foo, baz) func(bar) truc(foo) func(test, bar)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .