如何匹配子主机名从主机主机名到Java中的正则表达式

时间:2016-06-20 04:27:43

标签: java regex dns

像这样。主机名匹配" *"。

// ----------------------
*.example.com
    www.example.com  -> pass
    img.example.com  -> pass
    www.example2.com -> fail

// ----------------------
www.example.com
    www.example.com -> pass
    img.example.com -> fail

适用于所有顶级域名" com"匹配。

enter code here
// -----------------------
*.com
    www.a.com -> pass
    www.b.com -> pass
    www.c.org -> fail

或简单适用于所有域名。

//------------------------
*
    www.a.com -> pass
    img.b.com -> pass
    c.org     -> pass

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式将所有匹配项设置为regexp:

  • *替换为.*
  • .替换为\.(在java String中需要\\.

然后您可以使用以下代码来匹配要测试的字符串:

Pattern p = Pattern.compile(".*\\.example\\.com");
Matcher m = p.matcher("www.example.com");
boolean b = m.matches();

您的匹配字符串:

  • *.example.com - > .*\.example\.com
  • www.example.com - > www\.example\.com
  • *.com - > .*\.com
  • * - > .*