如何为URL编写正则表达式

时间:2011-08-24 16:30:24

标签: actionscript-3 flex flex3

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

这是我的网址:

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

这是我的RegExp:

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

输出是:

ie.crust.com:18000/TEST/

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

pie.crust.com:18000

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

提前谢谢。

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

部分[^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");

答案 2 :(得分:1)

试试这个:

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

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

答案 3 :(得分:1)

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

“pie”的p作为http规则的一部分进行匹配,因此不包括在内。使用正面的后视修复了这个。

http://regexr.com?2uhjf

答案 4 :(得分:0)

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