2014-09-04 2 views
0

Мне нужно написать регулярное выражение в java для соответствия домену и поддомену (.domain.com). Regex должен возвращать верно дляRegEx для соответствия концам

domain.com 
m.domain.com 
abc.domain.com 
www.domain.com 

но возвращает ложь для

abcdomain.com 
1domain.com 

Я стараюсь соответствовать domain.com и если предшествующий символ присутствует, то оно должно быть.

Я пробовал различные варианты, но он не работает в том или ином случае.

ответ

0

Я думаю, что вы хотите что-то вроде этого,

(?:\\w+\\.?)?domain\\.com 

DEMO

1

Попробуйте это:

(\.|^)domain.com$ 

Первая часть означает, что должен быть. или ничего и $ означает "не заканчивается"

1

Вы можете попробовать:

(^|\.)domain\.com$ 

но Java главным образом обрабатывает только полную линию спички, так:

(.+\.)?domain\.com 

или вы можете использовать метод .endWith() в Java-код:

if (domain.equals("domain.com") || domain.endsWith(".domain.com")) { 
    // do something... 
} 
0

Если вы не знаете, что «domain.com» будет, это регулярное выражение ниже должно дать вам только субдомен любой домен, который вы ищете. Соответствует ваши спецификации, включая домены, которые выглядят как abc.net

([a-z]+)(?=\.[a-z]+\.) 

DEMO

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