Это выражение будет просто разделять их, и мы можем сделать то, что мы хотим сделать после их захвата:
.+(counter).\1|(.+)
, который первая часть захватывает любые повторяющиеся counter
или наши нежелательные выходы:
.+(counter).\1
тогда вторая часть будет содержать то, что нам нравится:
(.+)
Тест
const regex = /.+(counter).\1|(.+)/gm;
const str = `http://localhost/controller1/counter
http://localhost/counter/counter`;
const subst = `$2`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log(result);
Схема RegEx
jex.im визуализирует регулярные выражения:
