Question

J'ai une chaîne dans mon projet de test QTP. Dans certains cas, cette chaîne est un texte en clair le contenu de courrier électronique; dans d'autres cas, il est HTML. Dans les deux cas, je dois enlever toutes les URL de la chaîne pour le match contre un cas attendu.

Comment cela peut-il être fait dans QTP / VBScript?

Était-ce utile?

La solution

Cela devrait faire l'affaire, bien que vos URL doivent commencer par http: // ou https: // pour eux à ramasser:

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

Le modèle de regex pour les URL correspondant vient de blog de Chris Freyer et semble gérer la plupart des types d'URL que vous êtes susceptible de rencontrer. Il a bien fonctionné sur les tests que j'effectués avec.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top