RegEx匹配结束

时间:2014-09-04 16:56:04

标签: java regex

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

返回true
domain.com
m.domain.com
abc.domain.com
www.domain.com

返回false
abcdomain.com
1domain.com

我尝试匹配domain.com,如果前面的字符存在则必须是。

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

6 个答案:

答案 0 :(得分:1)

试试这个:

(\.|^)domain.com$

第一部分意味着应该有一个。或无 和$ means,“以...结尾”

答案 1 :(得分:1)

您可以尝试:

(^|\.)domain\.com$

但Java主要只处理全行匹配,所以:

(.+\.)?domain\.com

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

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

答案 2 :(得分:1)

(^|.*?\.)domain\.com

试试这个。见演示。

http://regex101.com/r/lB2sH2/1

答案 3 :(得分:0)

我想你想要这样的东西,

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

DEMO

答案 4 :(得分:0)

试试这个正则表达式

\bdomain\.com$

http://rubular.com/r/QG0FtVWtm6

答案 5 :(得分:0)

如果您不知道“domain.com”会是什么,下面的正则表达式应该只为您提供所需域名的子域名。符合您的规范,包括看似abc.net

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

DEMO