细调正则表达式

时间:2018-09-26 21:11:48

标签: regex vb.net

我正在尝试使用这个整洁的正则表达式:

\(?(?:(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

1 个答案:

答案 0 :(得分:0)

我没有阅读后面的长表达式,但是如果您想强制始终包含协议名称(例如http),则可以删除第三个“?”来自正则表达式。