2017-02-19 10 views
-2

Однако полное совпадение по-прежнему идет в _37=12abc

+0

«Слово заканчивается на _» Это не делает это * вообще *. Все '([^ _] +)' происходит, это захват всего, что не является _ _' – math2001

+0

Не эксперт по регулярному выражению, но этот шаблон делает то, что я хочу ... ну очень похоже на то, что я хочу –

ответ

3

Захват группы матчей доступны через SubMatches коллекции.

<% 
Dim regex, matches, match, strSubject, strResult 

strSubject = "dadasd_37=12abc_dadasd_asdasdasd_asdas_asd" 

set regex = new RegExp 
regex.IgnoreCase = True 
regex.Pattern = "(?:_37=)([^_]+)" 

set matches = regex.Execute(strSubject) 

if matches.Count >= 1 then 
    set match = matches(0) 
    if match.SubMatches.Count >= 1 then 
     strResult = match.SubMatches(0) 
    else 
     strResult = "" 
    end If 
else 
    strResult = "" 
end if 

response.write "strResult:" & strResult & "" 
%> 
+0

Есть ли способ, которым я получаю только требуемый текст, так что мне не нужно обрабатывать вспомогательные совпадения –

+0

Я не знаю другого способа с vbscript. –

+0

Можете ли вы использовать javascript вместо этого? http://stackoverflow.com/a/432503/989516 –