如何使用正则表达式查找输入文本是否为url

时间:2013-12-23 11:14:00

标签: android regex

我想检查收到的输入是否是使用REGEX的url。我该怎么做 ?是否有可用于检查网址的标准REGEX?

我的要求是检查输入文本是否为url,但是如果文本包含url则不然。

2 个答案:

答案 0 :(得分:5)

你可以在android中检查没有正则表达式

android.util.Patterns.WEB_URL.matcher(linkUrl).matches();

答案 1 :(得分:4)

我强烈建议不要在这种情况下使用正则表达式,因为有很多不同的情况可以构成有效的URL(有关RFC有效正则表达式的示例,请参阅this question的最高投票答案)。如果在Android上工作,我建议使用Uri类;

String urlToValidate = "http://google.co.uk/search";
Uri uri = Uri.parse(urlToValidate);

然后,您可以查看URL的不同部分,以确保您愿意接受URL输入。例如;

uri.getScheme(); // Returns "http", if you only want an HTTP url
uri.getHost(); // Returns "google.co.uk", if you only want a specific domain
uri.getPath(); // Returns "/search"