尝试使用此正则表达式替换为空的内容。
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>
请建议,这里出了什么问题?
答案 0 :(得分:1)
VBScript不支持原子组(开头是(?>/?)
构造)。
见here the feature overview on regular-expression.info。 VBScript使用的是ECMA风格。
删除原子组并替换前导斜杠的检查
objRegExp.Pattern = "<(?!/?(p|strong))[^<]+?>"
这似乎可以胜任。见here on Regexr
<强>更新强>
好的,如果你放回(>|\s)
工作
<(?!/?(p|strong)(>|\s))[^<]+?>