Это группа 2 для имени пользователя: пароль не может быть пустым, вы можете опустить необязательную группу без захвата вокруг него (?:...)?
Отрицательный класс символов не должен быть не жадным [^\s@/]+
как он не может передать символ @
. (Обратите внимание, что [^\s^@\/]
также не позволит сопоставить ^
и /
)
Если вы хотите сопоставить «остаток» в группе 5, вы можете сопоставить /
, за которым следует любой символ 0+ раз (\/.*)
Вам не нужно использовать квадратные скобки для @
и :
(rtsp):\/\/([^\s@/]+)@([^\s/:]+)(?::([0-9]+))?(\/.*)
Regex demo