首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在regex中捕获.com后的URL部分?

问如何在regex中捕获.com后的URL部分?
EN

Stack Overflow用户
提问于 2013-12-09 07:10:37
回答 1查看 531关注 0票数 1

我提出了以下正则表达式来匹配有效的url。

代码语言:javascript
复制
^(?:(ftp|http|https):\/\/)?(?:[a-zA-Z]+\.){0,1}(?:[a-zA-Z0-9][a-zA-Z0-9-]+){1}(?:\.[a-zA-Z]{2,6})?$

这匹配(ftp、http、http、https)可选的、没有.com或任何内容的域名,但我也希望捕获.com之后的所有内容。

上述正则表达式验证http://stackoverflow.com或localhost或google.com,但不验证http://stackoverflow.com/questions/ask。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-09 07:58:25

为了匹配剩余的URI,您可以在最后添加\S*:

^(?:(ftp|http|https):\/\/)?(?:[a-zA-Z]+\.){0,1}(?:[a-zA-Z0-9][a-zA-Z0-9-]+){1}(?:\.[a-zA-Z]{2,6})?(\/|\/\w\S*)?$

但是要解析URL的各种组件,最好使用built-in parse_url function.

替换以验证本地urls:

^(?:(ftp|http|https):\/\/)?(?:[a-zA-Z0-9.]+\.){0,1}(?:[a-zA-Z0-9][a-zA-Z0-9-]+){1}(?:\.[a-zA-Z]{2,6})?(\/|\/[\w#!:.?+=&%@!\-\/]*)?$

例: 172.18.11.178

演示: http://regex101.com/r/vV0sB5

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20465081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档