2010-05-21 6 views
4

Comment faire correspondre plus d'un modèle dans vbscript? Je souhaite remplacer tout paramètre appelé cat ou subcat dans une chaîne appelée param avec rien.vbscript multiple remplace regex

Par exemple

string?cat=meow&subcat=purr or string?cat=meow&dog=bark&subcat=purr 

Je veux sortir le chat = miaou et subcat = ronronnement de chaque chaîne.

Répondre

2

En général, OR dans regex est un tuyau:

[?&]cat=[\w-]+|[?&]subcat=[\w-]+ 

Dans ce cas, cela va aussi travailler: fait sub en option:

[?&](sub)?cat=[\w-]+ 

Une autre option consiste à utiliser ou sur les parties non partagées:

[?&](cat|dog|bird)=[\w-]+ 
+0

Merci. Je faisais le | avant, mais j'ai réalisé que la raison pour laquelle il ne fonctionnait pas correctement était parce que je n'avais pas regEx.Global = True set. – Choy

3
regEx.Pattern = "([?&])(cat|dog)=[\w-]+" 

param = regEx.Replace(param, "$1") ' The $1 brings our ? or & back 
+0

Merci, mais comment pourrais-je enchaîner deux modèles complètement différents? Disons supprimer tout ce qui correspond à "chien" ou "chat"? – Choy

+0

@George: voir mon edit –

+0

Merci, bien que dans ce cas, le 1 $ va retourner le? ou & de chaque match, donc je reçois la chaîne && – Choy

Questions connexes