1
我有这个正则表达式,它在.Net中工作 - 但不在ASP Classic中。它也适用于RegExrASP经典正则表达式在.Net中的行为不同于.net
它用于用逗号替换空格,除非空格在引号内。
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?
'“\ x22”'不是空格。这是一个双引号:'''。空格是'“\ x20”' – kirilloid 2012-04-02 19:14:57