Регулярное выражение - Как исключить определенную строку из набора результатов? - PullRequest
0 голосов
/ 31 октября 2019

Я довольно нов в Регулярном выражении.

Ввод

/shop/earrings
/shop/yellow-gold-earrings
/shop/white-gold-earrings
/shop/rose-gold-earrings

/shop/necklaces
/shop/yellow-gold-necklaces
/shop/white-gold-necklaces
/shop/rose-gold-necklaces

/shop/best-buy-earrings

Регулярное выражение, которое я использовал

\/shop\/[a-z-]*-?earrings

Желаемый результат

/shop/earrings
/shop/yellow-gold-earrings
/shop/white-gold-earrings
/shop/rose-gold-earrings

Фактический результат

/shop/earrings
/shop/yellow-gold-earrings
/shop/white-gold-earrings
/shop/rose-gold-earrings
/shop/best-buy-earrings

Я не хочу, чтобы / магазин / лучшие покупки серьги былив результате. Пожалуйста, помогите мне исправить регулярное выражение. Спасибо.

Ответы [ 2 ]

1 голос
/ 31 октября 2019

Если использовать PCRE, вы можете использовать:

\/shop\/(?!best-buy)(?:\w+-)*earrings

Или, если вы можете использовать другой разделитель, кроме косой черты:

/shop/(?!best-buy)(?:\w+-)*earrings

Демо

1 голос
/ 31 октября 2019

Просто добавьте gold к регулярному выражению перед - и заключите в скобки:

\/shop\/([a-z-]*gold-)?earrings
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...