如何编写 URL 的正则表达式
我一直在使用正则表达式资源管理器,但我仍然无法想出正确的模式。
这是我的 URL:
http://pie.crust.com:18000/TEST/TEST.html
这是我的正则表达式:
/[^http:\/\/][\w-\W]+[\/]/
输出是:
ie.crust.com:18000/TEST/
我想要的只是域(基本上是 // 和 / 之间的所有内容):
pie.crust.com:18000
我缺少什么?我就是想不通。有什么想法吗?
先感谢您。
I've been using the Regular Expression Explorer but I still can't come up with the right pattern.
Here's my URL:
http://pie.crust.com:18000/TEST/TEST.html
Here's my RegExp:
/[^http:\/\/][\w-\W]+[\/]/
And the output is:
ie.crust.com:18000/TEST/
All I want is the domain (basically everything inbetween // and /):
pie.crust.com:18000
What am I missing? I just can't figure it out. Any ideas?
Thank you in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
试试这个:
http:\/\/([^\/]+)
Try this one:
http:\/\/([^\/]+)
[^http:\/\/]
部分与[^htp:\/]
相同,只是枚举所有不应出现在开头的字符结果字符串的一部分。因此,对于http://pie.crust.com:18000/TEST/TEST.html
http://p
匹配此枚举。我建议您使用以下表达式:您可以使用
String.replace()
的方式如下:The part
[^http:\/\/]
is the same as[^htp:\/]
and just enumerates all the characters which shouldn't be in the start part of the resulting string. So forhttp://pie.crust.com:18000/TEST/TEST.html
http://p
matches this enumeration. I suggest you the following expression:You can use
String.replace()
the following way:试试这个:(
您的正则表达式不必以
/
开头和结尾 - 使用搜索字符串中没有的其他内容会更容易。Try this:
(Your regexp doesn't have to start and end with
/
- it's easier to use something else that isn't in your search string.(?<=http:\/\/)[a-zA-Z.:0-9-]+
“pie” 的 p 作为 http 规则的一部分进行匹配,并且所以不包括在内。使用积极的后视解决了这个问题。
http://regexr.com?2uhjf
(?<=http:\/\/)[a-zA-Z.:0-9-]+
The p of "pie" is being matched as part of the http rule, and so is not included. Using a positive look-behind fixed this.
http://regexr.com?2uhjf