Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex ASP经典正则表达式的行为与.Net中的不同_Regex_Asp Classic_Vbscript - Fatal编程技术网

Regex ASP经典正则表达式的行为与.Net中的不同

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

我有一个正则表达式,它在.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(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”