网址的完美正则表达式

时间:2019-06-08 10:04:36

标签: java

我想验证所有类型的url,但很少有条件不能与以下正则表达式一起使用:

^((https?|ftp|smtp|http):\/\/)?(www.)?[a-z0-9]+\.[a-z]+(\/[a-zA-Z0-9#]+\/?)*\.(com|in)$

它不起作用

  1. http://google.com
  2. https://google.com
  3. google.com

1 个答案:

答案 0 :(得分:0)

如果您查看正则表达式,您会在网址中看到两个点(我添加了空格来标识它们):

^((https?|ftp|smtp|http):\/\/)?(www.)?[a-z0-9]+   \.   [a-z]+(\/[a-zA-Z0-9#]+\/?)*   \.   (com|in)$

我建议您使用https://regex101.com/检查您的正则表达式。

但是,就像George所说的那样,您可以使用commons regex来实现此目的,而不用创建一个新的表达式。


顺便说一下,https?正在捕获httpshttp,因此(https?|...|http) = (https?|...)