QTP / VBScript: как удалить все URL из строки? - PullRequest
1 голос
/ 21 апреля 2009

У меня есть строка в моем тестовом проекте QTP. В некоторых случаях эта строка представляет собой текстовое сообщение электронной почты; в других случаях это HTML. В обоих случаях мне нужно удалить все URL из строки, чтобы сопоставить ее с ожидаемым случаем.

Как это можно сделать в QTP / VBScript?

1 Ответ

1 голос
/ 28 мая 2009

Это должно сработать, хотя ваши 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-адресов взят из блога Криса Фрейера и, похоже, обрабатывает большинство типов URL-адресов, с которыми вы можете столкнуться. Он хорошо работал на тех тестах, которые я проводил с ним.

...