Я нормализую кучу Ansible имен групп, которые нужно изменить, чтобы использовать подчеркивания вместо дефисов (спасибо, Ansible). Однако в файле есть множество других вещей, разделенных дефисами, поэтому я хочу оставить эти строки в покое. Те, которые я хочу изменить, всегда заканчиваются на -servers
. Итак, с небольшой выборкой мы могли бы иметь:
foo-bar
foo-bar-servers
foo-bar-baz-servers
(\w)-(\w?)?
очень хорошо фиксирует вещи, поэтому я могу просто перейти к $1_$2
, чтобы заменить дефисы на подчеркивания. Однако, как только я добавляю -servers
или ervers
в конце, он захватывает только самую последнюю пару вокруг дефиса. Я перепробовал много вариантов, немного прочитал о прогнозировании, и я полностью озадачен. Похоже, это должно быть просто. Какое заклинание магов c соответствует всем группам вокруг дефисов для строк, оканчивающихся на -servers
? Заранее большое спасибо.
Редактировать: желаемые результаты, с извинениями:
foo-bar
foo_bar_servers
foo_bar_baz_servers