Вы можете использовать отрицательный взгляд вперед, чтобы отклонить строки, которые заканчиваются на /reviews/
или add-review
, используя это регулярное выражение,
(?!.*/(add-)?reviews?/$)listing/(.+?)/([^\/.]+)/?(reviews/?(.+?)?/?)?/?$
^^^^^^^^^^^^^^^^^^^^^^^^ This negative look ahead will reject strings
that end with review or reviews or add-review or add-reviews
Regex Demo
Однако, если вы строго хотите отклонить строки, которые заканчиваются только на add-review
или reviews
, вам придется использовать это регулярное выражение,
(?!.*/(?:add-review|reviews)/$)listing/(.+?)/([^\/.]+)/?(reviews/?(.+?)?/?)?/?$
Regex Demo строго отбрасывает указанные вами строки