Regex 非捕获组在完全匹配中被捕获
示例字符串:Regex 非捕获组在完全匹配中被捕获,regex,vbscript,Regex,Vbscript,示例字符串:dadadasd\u 37=12abc\u dadadasd\u asdas\u asd 我的正则表达式:(?:37=)([^.]+) 我想要得到的是:12abc(任何以37=开头,以结尾的词) 但是,由于通过集合访问捕获组匹配,因此完整匹配仍在进行中 <% Dim regex, matches, match, strSubject, strResult strSubject = "dadasd_37=12abc_dadasd_asdasdasd_asdas_asd" s
dadadasd\u 37=12abc\u dadadasd\u asdas\u asd
(?:37=)([^.]+)
12abc
(任何以37=
开头,以结尾的词)
但是,由于通过集合访问捕获组匹配,因此完整匹配仍在进行中
<%
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 & ""
%>
=1那么
设置匹配=匹配(0)
如果match.SubMatches.Count>=1,则
strResult=匹配。子匹配(0)
其他的
strResult=“”
如果结束
其他的
strResult=“”
如果结束
response.write“strResult:&strResult&”
%>
是否有一种方法可以让我只获取所需的文本,而不必处理子匹配?我不知道vbscript还有其他方法。你可以改用javascript吗?不幸的是,不是“以u结尾的词”根本没有这样做。所有的([^]+)
都将捕获任何不是\u
的东西,而不是正则表达式专家,但是这个模式正在做我想要的。。。很像我想要的