经典ASP - 正则表达式 - 模式不会替换为字符串空

时间:2012-03-01 09:47:19

标签: regex asp-classic

尝试使用此正则表达式替换为空的内容。

objRegExp.Pattern = "<(?>/?)(?!(p|strong)(>|\s))[^<]+?>"
sHtml = objRegExp.Replace(sHtml, "")

如果我在gskinner上测试这个<(?>/?)(?!(p|strong)(>|\s))[^<]+?>正则表达式,它运行正常。但是,当我将其放在 Classic ASP 页面上时,它无效。

当我调试错误时显示为

  

正则表达式中的语法错误

INPUT:

<h2>Regex testing</h2><br/><p>P Test</p><div>Div Test</div><strong>Strong Test</strong>

预期输出

Regex testing<p>P Test</p>Div Test<strong>Strong Test</strong>

请建议,这里出了什么问题?

1 个答案:

答案 0 :(得分:1)

VBScript不支持原子组(开头是(?>/?)构造)。

here the feature overview on regular-expression.info。 VBScript使用的是ECMA风格。

删除原子组并替换前导斜杠的检查

objRegExp.Pattern = "<(?!/?(p|strong))[^<]+?>"

这似乎可以胜任。见here on Regexr

<强>更新

好的,如果你放回(>|\s)工作

,我删除了太多
<(?!/?(p|strong)(>|\s))[^<]+?>

Regexr