([\ w - ] +。)+ [\ w - ] +(/ [\ w- ./?%&=]*)? 我使用上面的表达式进行URL验证。但问题是当我只给'www.yahoo'并按下保存按钮时我没有收到任何错误信息。请提供解决方案。
谢谢
答案 0 :(得分:3)
好吧,我猜这个帖子与python有关。您也可以在ASP.NET中找到类似的东西。
但是如果你想自己解析它,你应该参考提供正则表达式的RFC 2396 (URI Generic Syntax)并将其分解为附录B中的组件:
^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))? 12 3 4 5 6 7 8 9
上面第二行中的数字仅供参考 可读性;它们表示每个参考点 子表达(即每个配对括号)。我们指的是 子表达式匹配的值为$。例如,匹配 上面的表达
http://www.ics.uci.edu/pub/ietf/uri/#Related
导致以下子表达式匹配:
$1 = http: $2 = http $3 = //www.ics.uci.edu $4 = www.ics.uci.edu $5 = /pub/ietf/uri/ $6 = <undefined> $7 = <undefined> $8 = #Related $9 = Related
其中表示该组件不存在,如 是上例中查询组件的情况。 因此,我们可以确定四个组件的值和 片段为
scheme = $2 authority = $4 path = $5 query = $7 fragment = $9
并且,在相反的方向上,我们可以重新创建URI引用 使用第5.2节第7步中的算法从其组件中获取。
修改强>:
经过一段谷歌搜索,我在ASP.NET中找到了这个:System.Uri
,例如:
Uri uri = new Uri("http://www.ics.uci.edu/pub/ietf/uri/#Related");
Console.WriteLine(uri.AbsoluteUri);
Console.WriteLine(uri.Host);