匹配基本网址正则表达式

时间:2013-11-20 14:34:24

标签: regex

示例:

http://example.com ---> http://example.com
ftp://username:password@example.com ---> ftp://username:password@example.com
http://example.com/path/to/somehwere ---> http://example.com
http://example.co.uk ---> http://example.co.uk
example.co.uk ---> example.co.uk
example.co.uk?user=John&pass=1234 ---> example.com.uk

我试过了:

.*?(:\/{2})?.*?(?=\/|$|\?)

它为没有协议的网址工作,但(?=\/|$|\?)的原因却停在http:

你帮我修复我的正则表达吗?还是建议更好?

2 个答案:

答案 0 :(得分:9)

我相信这个基于前瞻性的正则表达式适合你:

^.+?[^\/:](?=[?\/]|$)

答案 1 :(得分:1)

考虑以下Regex ......

(http://|ftp://|https://)?[^/\?]*$

祝你好运!