首页 > 解决方案 > 正则表达式的新手

问题描述

我必须使用 URL 构建 smth,但只能使用有效的 google play 链接。我会从用户那里得到一个链接,并想在连接之前检查它。如果我有这样的 Google Play 链接:https: //play.google.com/store/apps/details? id=com .... 我想将它与正则表达式和方法匹配(或者我应该只使用方法包含?)如果链接包含 play.google.com - 这是真的,然后执行一些操作。如果为 false - 抛出新异常。

我试过了

\\. + play.google. + \\. 

但它根本不起作用。

标签: javaregex

解决方案


\。匹配文字的实际点。你想要实际的点:

Pattern.compile("^.*play\\.google\\..*$");

但是,您不想这样做- 这是一个匹配的 URL:https://www.hacker.ru/hahaThisWillMatch?irrelevant=play.google

将 URI 放入java.net.URI类中,并询问它的服务器是什么,以及端口和协议。端口需要不存在,协议需要是 https,服务器需要play.google.com是不要尝试使用正则表达式,因为有数以千计的顶级域,而谷歌并没有在所有这些域中注册“谷歌”。


推荐阅读