В нашем коде у нас есть нестандартные соглашения об именах для наших переменных. Например, у нас есть идентификатор категории, который прикреплен ко многим переменным в файле, например: usa_foo
, bar_usa
, где usa
- идентификатор категории. Я хотел бы преобразовать все эти имена со стандартом размещения идентификатора категории в конце, поэтому usa_foo
превратится в foo_usa
. Поскольку эти переменные часто внедряются в выражения, за ними может следовать несколько возможных символов, которые в данном случае (язык hashicorp hcl), в основном, "
, ]
, ,
или пробел. Например, я хотел бы превратить:
usa_foo = something
something "${var.usa_foo}"
b = [var.usa_foo, var.bar_usa]
bar_usa
в:
foo_usa = something
something "${var.foo_usa}"
b = [var.foo_usa, var.bar_usa]
bar_usa
Я знаю, как найти и заменить, если я знаю символ, следующий за словом, скажем "
. Тогда это будет
%s/usa_\(\w*\)"\(.*\)/\1_usa"\2/g
Однако я не уверен, каким образом я могу сопоставить несколько конечных символов и все же делать то же самое.