我正在尝试使用这个整洁的正则表达式:
\(?(?:(http|https|ftp):\/\/)?(?:((?:[^\W\s]|\.|-|[:]{1})+)@{1})?((?:www.)?(?:[^\W\s]|\.|-)+[\.][^\W\s]{2,4}|localhost(?=\/)|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?::(\d*))?([\/]?[^\s\?]*[\/]{1})*(?:\/?([^\s\n\?\[\]\{\}\#]*(?:(?=\.)){1}|[^\s\n\?\[\]\{\}\.\#]*)?([\.]{1}[^\s\?\#]*)?)?(?:\?{1}([^\s\n\#\[\]]*))?([\#][^\s\n]*)?\)?
在这里找到它:https://someweblog.com/url-regular-expression-javascript-link-shortener/
它找到URL并缩短它们。但是有一个错误。当任何两个字符都带有句点“。”时。在它们之间变成一个链接。例如,如果用户忘记在2个单词之间放一个空格...它将成为URL。
例如:我非常喜欢stack.overflow。 stack.overflow将成为一个链接。
尽管如此,在示例中使用了Javascript。此正则表达式可与VB.net一起使用。这个问题中的一个不会:Regex to find URLs in a string
答案 0 :(得分:0)
我没有阅读后面的长表达式,但是如果您想强制始终包含协议名称(例如http),则可以删除第三个“?”来自正则表达式。