Вы получаете этот дополнительный пробел из-за точки, за которой следует положительный прогноз .(?=\d+)
, который утверждает, что справа это 1+ цифр.
Обратите внимание, что точка соответствует любому символу, кроме новой строки, и вы должны экранировать ее, чтобы она соответствовала буквально \.
Если вы больше не используете группы захвата в своем коде или инструменте, вы можете опустить их и использовать вместо них группы без захвата (?:
.
Вы можете обновить свое выражение до:
(?:[0-9]*\.[0-9]+|[0-9]+)/[1-9][0-9]+
Это будет соответствовать:
(?:
Группа без захвата
[0-9]*\.[0-9]+
Совпадение 0+ раз цифра, точка и 1+ раз цифра
|
или
[0-9]+
Соответствует 1+ раз цифре
)
Закрыть группу без захвата
/
Матч прямой слеш
[1-9][0-9]+
Совпадение цифры 1-9, за которой следуют цифры 1+
Regex demo