【问题标题】:regular expression match domain正则表达式匹配域
【发布时间】:2013-02-14 20:19:14
【问题描述】:

我需要一个正则表达式来匹配以下域:

http://www.cnn.com/fred      = www.cnn.com
cnn.com                      = cnn.com
www.cnn.com:8080             = www.cnn.com

我有以下正则表达式(使用 pcre):

([^/]+://)?([^:/]+)

以上在案例 2 和 3 中工作正常,但是对于 1,我仍然将 http:// 附加到匹配的字符串中,是否有一个正则表达式选项可以用来跳过 http 部分?

提前多谢

【问题讨论】:

    标签: regex pcre


    【解决方案1】:

    这个应该适合你的需要:

    ^(?:(?:f|ht)tps?://)?([^/:]+)
    

    第一组将包含您要查找的内容。

    【讨论】:

    • 嗨,我在regextester.com 上试过这个,它仍然给了我一个匹配的 http:// 附加在前面
    【解决方案2】:

    这看起来最接近我想要的不完美但似乎完成了工作

    www?([^/:]+)
    

    【讨论】: