Мне нужно сделать редирект сайта через скрипт для примерно 10 разных URL, содержащих строку «enterpriseloyalty». Я пытаюсь написать RegEx, чтобы выяснить, есть ли в этом URL. Для этого я использую функцию, которую нашел здесь по другому вопросу (, используя классический asp для регулярного выражения ). Проблема в том, что при тестировании на сайте ничего не возвращается "http://enterpriseloyaltyjournal.ca/".
Я проверял регулярное выражение в http://gskinner.com/RegExr/ и http://www.pagecolumn.com/tool/regtest.htm с соответствующими результатами регулярного выражения "EnterpriseLyalty [A-Za-z] * (? =. {1,1}) «работает, соответствует» enterpriseloyaltyjournal »в строке URL. Но на сайте "Response.Write (" Results: "& result.Submatches (0))" вообще ничего не возвращает. И, честно говоря, я не знаю, ожидаю ли я результата совпадения строки или чего-то еще, но ничего просто не возвращается.
Когда я просто делаю заявление If InStr(Request.ServerVariables("SERVER_NAME"),"enterpriseloyaltyjournal.ca") > 0 Then
, оно возвращается. Мой код ниже. Любая помощь с благодарностью.
Function RegExResults(strTarget, strPattern)
Set regEx = New RegExp
regEx.Pattern = strPattern
regEx.Global = true
Set RegExResults = regEx.Execute(strTarget)
Set regEx = Nothing
End Function
'Pass the original string and pattern into the function and get a collection object back'
Set arrResults = RegExResults(Request.ServerVariables("SERVER_NAME"), "enterpriseloyalty[A-Za-z]*(?=\.{1,1})")
'In your pattern the answer is the first group, so all you need is'
For each result in arrResults
Response.Write("Results: " & result.Submatches(0))
Next
EDIT
Я также пытаюсь выполнить следующее без результатов:
Regex.IgnoreCase = True
Regex.Pattern = "enterpriseloyalty[A-Za-z]*(?=\.{1,1})"
Response.Write("Results:" & Regex.Test(Request.ServerVariables("SERVER_NAME")))
Кроме того, когда я говорю «нет результатов», я имею в виду, что вообще ничего не возвращается. Даже не «Результаты». Хотя я не получаю никакой ошибки.
решаемые
Изменен код выше, чтобы он выглядел так:
Dim regex
Set regex = New RegExp
regex.IgnoreCase = True
regex.Pattern = "enterpriseloyalty[A-Za-z]*(?=\.{1,1})"
Response.Write("Results:" & regex.Test(Request.ServerVariables("SERVER_NAME")))
И это работало просто отлично.