【发布时间】:2011-12-06 14:48:20
【问题描述】:
有没有办法检查一个正则表达式是否代表一个有效的 URL?比如说,正则表达式是Java字符串,有没有办法检查这些字符串是否代表一个有效的URL?
例如,说
String s1 = "/amazon\.com\//";
String s2 = "/google(\.[a-z]+)?\.[a-z]+\/search.*q=/i";
String s3 = "/.*/"; //Represents any URL
String s4 = "hello world";
s1、s2 和 s3 是表示 Urls 的有效正则表达式,但 s4 无效。
谢谢, 索尼
【问题讨论】:
-
有趣..如果我正确理解了这个问题,你是在问一个正则表达式是否匹配另一个正则表达式匹配的子集......
-
尽管有些浏览器可能会或可能不会处理 incomplete URI/URL,但根据定义,您的示例都不是有效的:
scheme://domain:port/path?query_string#fragment_id这说明了为什么不只是创建正则表达式模式以匹配您认为是“有效 URL”的任何内容? -
这个问题实际上是如何产生的!这些正则表达式来自哪里?例如用户?如果是,为什么?