正则表达式匹配url的域名

时间:2014-08-23 14:55:30

标签: regex

根据我是使用头部或无头服务器来测试我的网络应用程序,我的本地开发服务器的域名会发生变化:

无头时:

http://test.host

前进时:

http://127.0.0.1:22401

我正在尝试创建一个匹配这两者的正则表达式。看起来很简单,但我一直在陷入困境,帮助升值。

http://test.host/need/to/not/match/this/part
http://127.0.0.1:22401/need/to/not/match/this/part

3 个答案:

答案 0 :(得分:1)

你去吧

<强>正则表达式

(?<=:\/\/)(.*?)(?=\/)

测试字符串

http://test.host/need/to/not/match/this/part
http://127.0.0.1:22401/need/to/not/match/this/part

<强>结果

  • 比赛1
      1. [7-16] test.host
  • 比赛2
      1. [52-67] 127.0.0.1:22401

在线demo


如果您不想匹配端口:22401

这是更新以匹配更多场景

(?<=:\/\/)(.*?)(?=\/|:|\n)

这也可以匹配字符串http://test.host

demo here

答案 1 :(得分:0)

不确定我是否理解正确。你在找这个:

(http\:\/\/(?:test\.host|127\.0\.0\.1\:22401))

Regex Demo

如果您想要切断http://,可以使用:

(?:http\:\/\/(test\.host|127\.0\.0\.1\:22401))

两个正则表达式都基于您希望拥有这些固定字符串的假设。

答案 2 :(得分:0)

你也可以试试这个使用否定字符类([^...])的正则表达式,

(?<=:\/\/)[^\/\n]*

DEMO