2014-10-15 4 views
1

У меня есть несколько URL-адресов, которые я хотел бы сопоставить. Они всегда по той же схеме:regex negative lookahead identify url

name.url.com 
name-dev.url.com 
name-qa.url.com 

Следуя этой схеме у меня есть 4 группы, которые я хочу, чтобы определить: ALL, LIVE, QA, DEV

ALL довольно просто:

^[a-z-_]+\.url\.com$ 

QA и DEV следуют по той же схеме:

^[a-z-_]+dev\.url\.com$ 
^[a-z-_]+qa\.url\.com$ 

Что я борюсь с должен определить только живые URL-адреса. Я знаю, что он не может иметь qa или dev как слово. Но следующее не работает:

^[a-z-_]+(?!dev|qa)\.url\.com$ 

Проблема, кажется, в первом наборе символов. Как я могу архивировать это?

+0

На каком языке вы используете это регулярное выражение? Обновите теги для вопроса. – cmbuckley

+0

опубликуйте несколько примеров для живого url's. –

ответ

1

Вы, вероятно, хотите использовать такое выражение здесь, если вы можете:

^[a-z-_]+(?<!dev|qa)\.url\.com$ 

Это утверждает, что верхний уровень URL не предшествует dev или qa , Here's a demo.

+0

спасибо, что работает отлично отлично :) – fimowe

0
^(?:(?!\bdev\b|\bqa\b).)+\.url\.com$ 

Try this.See demo.

http://regex101.com/r/dZ1vT6/20

+0

Эй, [ваше сообщение появилось в очереди сообщений низкого качества] (http://stackoverflow.com/review/low-quality-posts/6002688). Возможно, вы захотите завершить ответ, добавив подробности и обратившись к вопросу. – Unihedron

+0

спасибо, но он немного работал с жадностью. также соответствовал пробелам внутри URL-адреса. – fimowe

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