本文介绍了正则表达式匹配域和子域(在 Java 中)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要验证给定的 URL 是否与我的域掩码匹配.

I need to verify if given URL matches my domain mask.

示例:我只想允许满足此伪掩码"的域:

Example: I want to allow only domains which satisfy this "pseudo-mask":

https://*.domain.com
http://*.domain.com

所以下一个域名没问题:

So next domains are OKAY:

http://my.domain.com/something/blah.html
https://www.domain.com/
http://domain.com/go/somewhere.html
https://very.weird.domain.com/index.jsp

但下一个域名不行:

https://domain.com.google.com/other.html
http://my.domainfake.com/haha.jsp
https://my.fakedomain.com/

推荐答案

^https?://[^/@]*\.domain\.com(/.*)?$

(not-/ 用于阻止 .domain.com 出现在路径中,not-@ 用于阻止 username:password@滥用.)

(The not-/ to stop .domain.com appearing in the path, the not-@ to stop username:password@ abuse.)

更好:使用 URL 内置于 Java 中的类以正确解析 URL.然后您可以阅读 host 属性并检查它是否endsWith 您的域.

Better, though: use the URL class built into Java to parse a URL properly. You can then just read the host property and check that it endsWith your domain.

这篇关于正则表达式匹配域和子域(在 Java 中)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-24 10:50