如果最终部分中有冒号,则URL的正则表达式不起作用

时间:2014-04-10 09:53:37

标签: regex

我有一个正则表达式,用于在一段文本中查找网站地址。这是正常工作,除非地址的最后部分有冒号。

它适用于以下示例: https://stackoverflow.com/questions/ask-a-question并包含整个地址。

然而 https://stackoverflow.com/questions/ask:a-question 在结肠处停下来" a-question"不包括在内。

我刚刚使用的正则表达式是

((https?:\\/\\/([-\\w\\.]+)+(:\\d+)?(\\/([\\w/_\\-\\.\\?\\=\\%\\&]*(\\?\\s{1})?)?)?)?)(?<!\\.)

我也尝试了以下正则表达式,它也像上面一样。

 (((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?))|((\d|[1-9]\d|1\d{2}|2[0-4][0-9]|25[0-5])\.){3}

任何帮助都会很棒,谢谢。

1 个答案:

答案 0 :(得分:0)

试试这个

(\b(https?|ftp|file):\/\/)?[-A-Za-z0-9+&@#\/%?=~_|!:,.;]+[-A-Za-z0-9+&@#\/%=~_|]

http://www.phpliveregex.com/p/4Lt