java - JAVA 中的网站/URL 验证正则表达式

标签 java regex validation url

我需要一个正则表达式字符串来匹配以“http://”、“https://”、“www.”、“google.com”开头的 URL

我尝试使用的代码是:

//Pattern to check if this is a valid URL address
    Pattern p = Pattern.compile("(http://|https://)(www.)?([a-zA-Z0-9]+).[a-zA-Z0-9]*.[a-z]{3}.?([a-z]+)?");
    Matcher m;
    m=p.matcher(urlAddress);

但是这段代码只能匹配“http://www.google.com”这样的url

我知道这可能是一个重复的问题,但我已经尝试了所有提供的正则表达式,但它不符合我的要求。有人会帮助我吗?谢谢。

最佳答案

您需要将正则表达式中的 (http://|https://) 部分作为可选部分。

^(http:\/\/|https:\/\/)?(www.)?([a-zA-Z0-9]+).[a-zA-Z0-9]*.[a-z]{3}.?([a-z]+)?$

DEMO

关于java - JAVA 中的网站/URL 验证正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24924072/

相关文章:

forms - 表单在 form.reset() 之后变得无效 - Angular2

validation - 将 ValidateScript 与稍后在脚本中定义的自定义函数一起使用

Java 异常无需代码进行

r - 在 R 中使用正则表达式从字符串中获取数字

java - 正则表达式中\W,\\W,[^a-zA-Z0-9_]的区别

.net - 使用 DataAnnotations 与 WPF 和 Entity Framework 验证数据?

java - JPA:createNativeQuery.getSingleResult() 返回一个对象,如何获取该对象内一个属性的值

java - Java 和 Kotlin 中的共享接口(interface)之间的关系(例如 : List<>)

java - Android中如何查找匹配的关键点所属的 "train"图像的索引

regex - 什么风格的正则表达式应该与 DBpedia/Virtuoso SPARQL 一起使用?