vbscript множественная замена регулярное выражение - PullRequest
4 голосов
/ 21 мая 2010

Как вы сопоставляете несколько шаблонов в VBScript?

Set regEx = New RegExp

regEx.Pattern = "[?&]cat=[\w-]+" & "[?&]subcat=[\w-]+" // tried this
regEx.Pattern = "([?&]cat=[\w-]+)([?&]subcat=[\w-]+)" // and this

param = regEx.Replace(param, "")

Я хочу заменить любой параметр с именем cat или subcat в строке с именем param ничем.

Например

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

Я бы хотел удалить cat = meow и subcat = purr из каждой строки.

Ответы [ 2 ]

3 голосов
/ 21 мая 2010
regEx.Pattern = "([?&])(cat|dog)=[\w-]+"

param = regEx.Replace(param, "$1") ' The $1 brings our ? or & back
2 голосов
/ 21 мая 2010

Обычно OR в регулярном выражении - это труба:

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

В этом случае это также будет работать: сделать sub необязательным:

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

Другим вариантом является использование или не общие части:

[?&](cat|dog|bird)=[\w-]+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...