Это выражение может помочь вам сделать это:
(\w+)\s\((\w+)
Возможно, вам не нужно ограничивать его слева и справа, поскольку ваши входные строки хорошо структурированы.Вы можете просто сосредоточиться на желаемых группах захвата, которые, как я предположил, каждая из них представляет собой одно слово, которое вы можете просто изменить.
С простой заменой строки вы можете сопоставить и захватить их обоих.

Описательный график RegEx
Этот график показывает, как будет работать выражение, и вы можете визуализировать другие выражения в этой ссылке :

Тест производительности
Этот фрагмент JavaScript показывает производительность этого выражения, используя простой миллион раз for
петля.
repeat = 1000000;
start = Date.now();
for (var i = repeat; i >= 0; i--) {
var string = "Hello (World";
var regex = /(\w+)\s\((\w+)/g;
var match = string.replace(regex, "$1 & $2");
}
end = Date.now() - start;
console.log("YAAAY! \"" + match + "\" is a match ??? ");
console.log(end / 1000 + " is the runtime of " + repeat + " times benchmark test. ? ");