1

我想要一个函数(在 VB.net 中),它传递一个字符串,然后使用正则表达式从该字符串中删除任何网址。它需要能够处理不同格式的 url,例如:

http://www.mysite.com
https://www.mysite.com
www.mysite.com
http://mysite.co.uk/mypage.htm

它还应该去掉任何包含 web url 的锚标记。

基本上,它不应该期望 url 以http(or https) 为前缀,也不应该期望有www.or .com

然后该函数返回原始字符串,尽管已删除任何网址。

到目前为止,我所能想到的只是以下内容(尽管这不适合包含在锚标签中的 url),并且我注意到如果我将 2 个 url 仅用一个空格分隔,它会留下一个他们。

<Extension()> _
    Public Function ReplaceWebUrls(ByVal s As String) As String
        s = " " + s + " "

        s = Regex.Replace(s, "([\s])(www\..*?|http://.*?)([\s])", " ")
        s = Regex.Replace(s, "([\s])(https://.*?)([\s])", " ")

        Return s.Trim()
    End Function

VB.net 不是我通常使用的东西,但这次我别无选择,正则表达式不是我的强项:(

4

1 回答 1

1

使用正则表达式模式

\b(?:https?://|www\.)\S*

或者

(?:(?<=\s)|^)(?:https?://|www\.)\S*

并用空字符串替换每个匹配项。

于 2012-10-04T14:13:02.857 回答