代码之家  ›  专栏  ›  技术社区  ›  tsilb

qtp/vbscript:如何从字符串中删除所有URL?

  •  1
  • tsilb  · 技术社区  · 15 年前

    我的qtp测试项目中有一个字符串。在某些情况下,此字符串是纯文本电子邮件的内容;在其他情况下,它是HTML。在这两种情况下,我都需要从字符串中删除所有URL,以便将其与预期的情况匹配。

    如何在qtp/vbscript中完成此操作?

    1 回复  |  直到 13 年前
        1
  •  1
  •   Xiaofu    15 年前

    这应该可以做到这一点,尽管您的URL将需要以http://或https://开头,以便获取它们:

    Dim text
    text = "<your text with URLs here>"
    
    Dim rgx
    Set rgx = New RegExp
    rgx.IgnoreCase = True
    rgx.Global = True
    rgx.Pattern = "([A-Za-z]{3,9})://([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((/[-\+~%/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?)?"
    
    Dim match, matches
    Set matches = rgx.Execute(text)
    For Each match in matches
      MsgBox match.Value, 0, "Found Match"
    Next
    

    用于匹配URL的regex模式来自 Chris Freyer's blog 并且似乎可以处理您可能遇到的大多数类型的URL。它在我用它进行的测试中工作得很好。