如何为URL编写正则表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为URL编写正则表达式相关的知识,希望对你有一定的参考价值。
我一直在使用正则表达式资源管理器,但我仍然无法提出正确的模式。
这是我的网址:
http://pie.crust.com:18000/TEST/TEST.html
这是我的RegExp:
/[^http://][w-W]+[/]/
输出是:
ie.crust.com:18000/TEST/
我想要的只是域名(基本上是//和/之间的所有内容):
pie.crust.com:18000
我错过了什么?我只是想不出来。有任何想法吗?
先感谢您。
答案
部分[^http://]
与[^htp:/]
相同,只是枚举不应该在结果字符串的开始部分中的所有字符。因此,对于http://pie.crust.com:18000/TEST/TEST.html
,http://p
匹配此枚举。我建议您使用以下表达式:
/http://([^/]+)/.*/
您可以通过以下方式使用String.replace()
:
var myUrl:String = "http://pie.crust.com:18000/TEST/TEST.html";
var refinedUrl:String = myUrl.replace(/http://([^/]+)/.*/, "$1");
另一答案
试试这个:http://([^/]+)
另一答案
试试这个:
@http://+(.*?)/@
(你的正则表达式不必以/
开头和结尾 - 使用搜索字符串中没有的其他内容更容易。
另一答案
(?<=http://)[a-zA-Z.:0-9-]+
“pie”的p被匹配为http规则的一部分,因此不包括在内。使用正面的后视修复此问题。
另一答案
try this...
//http://([^/]+)/.***/
以上是关于如何为URL编写正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性