Образец (.*)([^A-Z0-9\/\._])
сначала будет соответствовать всем символам, кроме новой строки из-за .*
, и захватывает его в группе 1.
Во второй части используется класс отрицательных символов , который соответствует 1 раз любому символу, который не входит в класс символов, и захватывает его в группе 2.
Если вы не хотите соответствовать последнему условию, вы можете сделать регулярное выражение более конкретным.
Вы можете повторить класс символов [A-Z0-9._&]+
, а затем повторить группу (?:/...)
+ один или несколько раз, когда перед ним стоит косая черта. Амперсанд отсутствует, можно добавить и это.
Затем сопоставьте пробел, -
и пробел. После этого вы можете сопоставить любой символ кроме символа новой строки 0+ раз, используя .*
[A-Z0-9._&]+(?:/[A-Z0-9._&]+)+ - .*
Regex demo