2014-09-04 320 views
0

我需要在java中编写正则表达式来匹配域和子域(.domain.com)。 正则表达式应该返回true为正则表达式匹配

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

abcdomain.com 
1domain.com 

返回false我尽力配合domain.com和,如果前面的字符存在,则它必须是。

我尝试了各种选择,但它在一个或其他测试用例中失败。

回答

0

我想你想这样的事情,

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

DEMO

1

试试这个:

(\.|^)domain.com$ 

第一部分表示应该有一个。或者没有 和$手段,

1

你可以试试 “结尾”:

(^|\.)domain\.com$ 

但Java大多只处理全系匹配,所以:

(.+\.)?domain\.com 

,或者您可以使用在Java代码.endWith()方法:

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

如果你不知道什么是“domain.com”将是,低于这个正则表达式应该给你任何域您正在寻找的只是子域。匹配您的规格,包括像abc.net

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

DEMO