【问题标题】:Remove all web url's from a string using VB.net and RegEx使用 VB.net 和 RegEx 从字符串中删除所有 web url
【发布时间】:2012-10-05 19:54:29
【问题描述】:

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

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

它还应该去除任何包含网址的锚标记。

基本上,它不应期望 url 以 http(或 https)为前缀,也不应期望有 www..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 不是我通常使用的东西,但在这种情况下我别无选择,正则表达式不是我的强项:(

【问题讨论】:

  • 那么“this.url”有什么作用呢?还是“本地主机/测试”?两者都可以是有效的 URI。事实上,我已将本地服务器设置为将“phd”作为演示文稿的有效 URI。
  • 我不需要处理内部/本地 url。只需尝试处理大多数主流、常见的结构化地址类型即可。

标签: regex vb.net replace


【解决方案1】:

使用正则表达式模式

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    相关资源
    最近更新 更多