2014-09-04 271 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