确定字符串是不是是Java中带有正则表达式的URL [重复]

Posted

技术标签:

【中文标题】确定字符串是不是是Java中带有正则表达式的URL [重复]【英文标题】:Determine if string is a URL with Regex in Java [duplicate]确定字符串是否是Java中带有正则表达式的URL [重复] 【发布时间】:2011-08-08 23:49:43 【问题描述】:

可能的重复:What is the best regular expression to check if a string is a valid URLJava-How to detect the presence of URL in a string.

有没有办法查看一个字符串是否是一个有效的 URL?我正在使用 MIDP 库,并且 MIDP 中没有正则表达式。非常感谢任何帮助。

【问题讨论】:

发帖前请先搜索网站,“java regex url”返回大量有效信息。 请注意,搜索“java regex url”会指导您使用 regex 来检测 URL,但会错过更好的解决方案:从字符串构造 java.net.URL。 如果一切都是完全一样的,那为什么还要回答关于 SO 的任何问题呢? Java.net 不是 java 移动版中的库。 J2ME 没有 Java.Net 库,也不支持 regex 或 String.replaceAll @Edwin:在此类问题的最佳答案中建议了这一点。 【参考方案1】:

为什么不直接从字符串中构造一个java.net.URL 并捕获任何可能引发的异常?

String something;
try 
  URL url = new URL(something);
 catch (MalformedURLException e) 
  // it wasn't a URL

【讨论】:

是否也需要调用.toURI()? @Gaurav 仅当您需要 URI 类型时。如果您只需要一个 URL,那么创建 URL 就可以了。请注意,如果您需要 URL,则创建 URI 不是一个好主意,因为 URI 包含所有 URL 和其他元素(例如,URN),并且任何构建 URN 的人都可能会破坏假定 URI 只是 URL 的代码。请注意,这仅验证格式,但在使用 URL 之前,这就是所有可以验证的内容。

以上是关于确定字符串是不是是Java中带有正则表达式的URL [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Bash 中带有字符、点和数字的正则表达式

url地址栏中带有hash值的在.net后台怎样取值

检查字符串是不是为有效 URL 的 RFC 兼容和工作正则表达式是啥

检查字符串是不是为有效 URL 的最佳正则表达式是啥?

正则表达式字符匹配

正则表达式字符匹配