如何为URL编写正则表达式

问题描述 投票:1回答:5

我一直在使用正则表达式资源管理器,但我仍然无法提出正确的模式。

这是我的网址:

http://pie.crust.com:18000/TEST/TEST.html

这是我的RegExp:

/[^http:\/\/][\w-\W]+[\/]/

输出是:

ie.crust.com:18000/TEST/

我想要的只是域名(基本上是//和/之间的所有内容):

pie.crust.com:18000

我错过了什么?我只是想不出来。有任何想法吗?

先感谢您。

actionscript-3 flex flex3
5个回答
2
投票

部分[^http:\/\/][^htp:\/]相同,只是枚举不应该在结果字符串的开始部分中的所有字符。因此,对于http://pie.crust.com:18000/TEST/TEST.htmlhttp://p匹配此枚举。我建议您使用以下表达式:

/http:\/\/([^\/]+)\/.*/

您可以通过以下方式使用String.replace()

var myUrl:String = "http://pie.crust.com:18000/TEST/TEST.html";
var refinedUrl:String = myUrl.replace(/http:\/\/([^\/]+)\/.*/, "$1");

3
投票

试试这个:http:\/\/([^\/]+)


1
投票

试试这个:

@http://+(.*?)/@

(你的正则表达式不必以/开头和结尾 - 使用搜索字符串中没有的其他内容更容易。


1
投票

(?<=http:\/\/)[a-zA-Z.:0-9-]+

“pie”的p被匹配为http规则的一部分,因此不包括在内。使用正面的后视修复此问题。

http://regexr.com?2uhjf


0
投票
try this...
//http:\/\/([^\/]+)\/.***/
© www.soinside.com 2019 - 2024. All rights reserved.