Я пытаюсь добавить / удалить дефисы из списка очень специфичных c слов в документе, например:
вышеупомянутое, базовая линия, запуск >> вышеупомянутое, базовое состояние, запуск
Я хотел бы написать для этого ОДНУ строку REGEX, так как задача и шаблон ВСЕГДА одинаковы: добавить / удалить дефис из известной пары слов. Конечно, я могу сделать это, используя отдельную операцию REGEX для каждой пары, но это очень неуклюже и ресурсоемко:
(afore)-(mention) >> $1$2
(base)-(line) >> $1$2
(start)-(up) >> $1$2
etc.
Это кажется гораздо более простым подходом:
(?:(afore)-(mention)|(base)-(line)|(start)-(up)) >> $1$2
Проблема в том, что это дает новую обратную ссылку для каждого совпадения, что бесполезно. Я мог бы составить два списка, но тогда у меня будут странные совпадения, которые мне не нужны, что становится проблемой, если список становится длинным, и могут произойти случайные совпадения (перед строкой >> перед строкой, в базовой версии >> в базовой конфигурации, et c.):
(?:(afore|base|start)-(mentioned|line|up)) >> $1$2
Есть идеи? Заранее спасибо!