Работа с регулярным выражением с условным множественным захватом?

#regex #google-analytics

#регулярное выражение #google-analytics

Вопрос:

Я пытаюсь создать регулярное выражение (синтаксис Javascript для Google Analytics), соответствующее определенному типу URL, и я не могу понять, почему это неэффективно.

Учитывая этот список:

 mysite.com/newsletter/thank-you (MATCH)
mysite.com/blog/thanksgiving-recipes (NO MATCH)
mysite.com/case-studies/thanks (NO MATCH)
mysite.com/newsletter-it/grazie-per-subscribe (MATCH)
  

Я пытаюсь использовать:

 ([^blog])(?([newsletter])(thank|grazie|obrigado|merci|gracias|dank))
  

И Regex101 говорит о том, чтобы совершить долгую прогулку с короткого пирса.

Что я делаю не так?

Комментарии:

1. Какие правила вы пытаетесь реализовать? Что делает mysite.com/newsletter-it/grazie-per-subscribe ожидаемое совпадение, а другие нет?

2. Попробуйте //newsletter(?:-[a-z]{2})?/(?:thank|grazie|obrigado|merci|gracias|dank)/

Ответ №1:

Это может помочь вам:

mysite.com/newsletter(?:-it)?/(?:thank|grazie|obrigado|merci|gracias|dank).*

Смотрите демонстрацию