2015-08-05 6 views
0

Я использую регулярное выражение, чтобы определить, когда запускать тег отслеживания или нет.regex для нескольких доменов

Если посетитель одного из сайтов находится на одном из этих трех областей тег должен срабатывать:

- www.grousemountainlodge.com 
- www.glacierparkinc.com 
- reserveglacierdenali.com 

Я на самом деле есть регулярное выражение, которое работает. Но я не уверен и хотел отскакивать от людей на этой доске.

Это то, что у меня есть. Существует ли более простое, более элегантное или более надежное регулярное выражение для сопоставления трех доменов?

^(www\.)?((glacierparkinc|grousemountainlodge)\.com)$|(^reserveglacierdenali\.com)$ 

После некоторых ответов это регулярное выражение должно исключать другие домены, например. cats.glacierparkinc.com или аналогичный.

+0

Простой и элегантный? Да, список и фиксированные поисковые строки: P Если вам не нужны частичные соответствия. Не злоупотребляйте регулярными выражениями, если вам не нужно ** их. – KurzedMetal

+0

соответствуют ли вам имена доменов или полный URL-адрес? Я догадываюсь о доменах, но было бы неплохо, если бы вы это разъяснили. – KurzedMetal

ответ

1

Я не уверен, должен ли glacierparkinc.com соответствовать, без префикса www. - из вашего списка кажется, что нет, но из вашего регулярного выражения, похоже, он будет соответствовать.

В любом случае, я думаю, вы можете упростить это немного:

^(?:www\.(?:glacierparkinc|grousemountainlodge)|reserveglacierdenali)\.com$ 

Обратите внимание на использовании (?:) вместо просто (): это означает, что положительный опережающее утверждение без захвата. Его лучшая практика не захватывать, когда вам не нужно - экономить время и память.

1

Он должен быть в исходное положение с или неwww.. Итак:

^(?:www\.)?(?:glacierparkinc|grousemountainlodge|reserveglacierdenali)\. 

Если это уловка, то сделайте что-нибудь.

Regex live here.

Надеется, что это помогает.

+0

Привет, спасибо за ответ. Там должно быть несколько случаев, когда есть субдомены, например. кошки. glacierparkinc.com, и их следует исключить. –

+0

@ DougFirr. Хорошо. Я обновился, чтобы этого избежать. –

+0

Еще раз спасибо, пошли с ответом шеврона, но оба работали. Я не знал о позитивном прогнозе, не задумываясь –

Смежные вопросы