Regex ASP经典正则表达式的行为与.Net中的不同
我有一个正则表达式,它在.Net中工作,但在ASP Classic中不工作。它也适用于 它用于用逗号替换空格,除非空格在引号内Regex ASP经典正则表达式的行为与.Net中的不同,regex,asp-classic,vbscript,Regex,Asp Classic,Vbscript,我有一个正则表达式,它在.Net中工作,但在ASP Classic中不工作。它也适用于 它用于用逗号替换空格,除非空格在引号内 dim strSearch dim strPattern strPattern = "\s(?=(?:[^\x22]*\x22[^\x22]*\x22)*[^\x22]*\z)" '\x22 = " (dbl quotes) strSearch = The "quick brown" fox jumps strSearch = ereg_replace(strSea
dim strSearch
dim strPattern
strPattern = "\s(?=(?:[^\x22]*\x22[^\x22]*\x22)*[^\x22]*\z)" '\x22 = " (dbl quotes)
strSearch = The "quick brown" fox jumps
strSearch = ereg_replace(strSearch, pattern, ",", true)
response.write(strSearch)
'Expect: The,"quick brown",fox,jumps
'Actual: The "quick brown" fox jumps
function ereg_replace(strOriginalString, strPattern, strReplacement, varIgnoreCase)
dim objRegExp : set objRegExp = new RegExp
with objRegExp
.Pattern = strPattern
.IgnoreCase = varIgnoreCase
.Global = False
.Multiline = False
end with
ereg_replace = objRegExp.replace(strOriginalString, strReplacement)
set objRegExp = nothing
end function
要使模式适应ASP Classic,我需要做哪些更改?我很确定这是因为ASP正则表达式不支持
\z
锚,请尝试将其替换为$
:
\s(?=(?:[^\x22]*\x22[^\x22]*\x22)*[^\x22]*$)
有关更多信息,请参见上的此页。我很确定这是因为ASP regex不支持
\z
锚,请尝试将其替换为$
:
\s(?=(?:[^\x22]*\x22[^\x22]*\x22)*[^\x22]*$)
有关更多信息,请参见上的此页。“\x22”
不是空格。它是一个双引号:“
”。空格是“\x20”
“\x22”不是空格。它是一个双引号:”
。空格是“\x20”