Вот регулярное выражение, которое будет работать для вас. Но это уловка, которая работает только потому, что эта подстановка является частью совпадения.
Регулярное выражение
(n)ounC2|(v)erbC1|(adj)ectiveB1
Подстановка
($1$2$3)
Используйте (\1\2\3)
вместо этого, если вы используете Python
Пояснение
(n)ounC2|(v)erbC1|(adj)ectiveB1
будет соответствовать либо nounC2
, verbC1
или adjectiveB1
Когда он соответствует nounC2
, группа 1 будет содержать n
, группа 2 и 3 ничего не содержат
Когда она соответствует verbC1
, группа 2 будет содержать v
, группы 1 и 3 ничего не будут содержать
Когда совпадения будут adjectiveB1
, группа 3 будет содержать adj
, группа 1 и 2 не будут содержать ничего
Каждое совпадение заменяется пробелом за которыми следуют значения 3 групп в скобках.
Демонстрации
Демонстрация RegEx101
Фрагмент кода (JavaScript)
const regex = /(n)ounC2|(v)erbC1|(adj)ectiveB1/gm;
const str = `
dangernounC2
cautionnounC2
alertverbC1
dangerousadjectiveB1
eatverbC1
prettyadjectiveB1`;
const subst = ` ($1$2$3)`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);