Регулярное выражение для сопоставления поддоменов конкретного домена без пути - PullRequest
1 голос
/ 20 апреля 2010

Я хочу, чтобы регулярное выражение нашло следующие типы строк:

, где

abc -> abc всегда остается abc

что угодно -> это может быть любая строка

tld -> это может быть любой tld (домен верхнего уровня), например .com .net .co.in .co.uk и т. Д.

Примечание: URL-адрес не должен содержать никаких других элементов в конце, значит http://anything.abc.tld/xyz недопустимо.

Примечание: Поскольку список tlds является длинным списком, и все же есть вероятность, что вы забудете включить некоторые tlds, я не хочу записывать каждое tld в регулярное выражение для проверки. Вместо этого я хотел бы иметь регулярное выражение, которое проверяет следующее (для tld):

  • После abc есть точка (.)

  • После точки (.) Есть хотя бы один символ

Ответы [ 4 ]

3 голосов
/ 20 апреля 2010

TLD довольно много, и их число растет. Вы можете использовать

^http://[\w.-]+\.abc\.(com|net|co\.in|....  )/?$

Но это должно было бы поддерживаться на регулярной основе. Использование [^/]* для TLD может быть проще. Это будет выглядеть как

^http://[\w.-]+\.abc\.[^/]+/?$
1 голос
/ 20 апреля 2010

^ (http://)(.+)(abc)+.([^/]+)$

Все сгруппированы для вас тоже:)

Я настоятельно рекомендую использовать инструмент RegEx от gskinner.com

альтернативный текст http://img683.imageshack.us/img683/3760/regexmatch.jpg

1 голос
/ 20 апреля 2010
^http://[a-zA-Z0-9.-]+\.abc\.[a-zA-Z.]+/?$

Может немного отличаться в зависимости от того, какой диалект регулярного выражения вы используете.

0 голосов
/ 20 апреля 2010

Сначала определите, с каким типом данных вы будете иметь дело: это строковые записи или XML (например, они могут быть чем-то еще)? Это скажет вам, как вам нужно закрепить спички. Если вы можете закрепить их с помощью ^, тогда это будет проще. Вам нужно переменное число строк между "http://" и доменом верхнего уровня? Если вы не хотите записывать домен верхнего уровня, используйте

\.[a-z]\{2,3\}

Точная форма будет зависеть от того, используете ли вы базовые регулярные выражения (sed, grep) или расширенные регулярные выражения (awk), или совместимые с Perl регулярные выражения.

Что ты уже пробовал? Как вы это проверили?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...