Поскольку поддерживается поиск назад, вы можете изменить положительный просмотр назад в начале на отрицательный, установив границу пробела слева (?<!\S)
Вы можете использовать .*
для сканирования всей строки , вместо того, чтобы начинать с 1+ дополнительных пробелов \s+
Отрицательный просмотр вперед (?!.*\s-{3}\s+[0-9]+/[0-9]
утверждает, что то, что справа, не является суффиксом.
Вы можете опустить квантификатор +
после последнего класса символов, так как не имеет значения, идет ли за ним 1 или более цифр ... если это не di git.
Обратите внимание, что в текущем шаблоне десятичная part - это необязательная группа захвата 2. Если вы хотите, чтобы все это значение было в группе 1, вы можете сделать его необязательной группой .
(?<!\S)[A-Z]+[ ]+([0-9]+(\.[0-9]{1,3})?)/([0-9]+(\.[0-9]{1,3})?)(?!.*\s-{3}\s+[0-9]+/[0-9])
Regex demo