正则表达式使用经典 ASP 去除标签内的跨度

Regex to strip span inside a tag using classic ASP

我想从 <h2> 个标签中去除 <span> 个标签及其样式,例如

<h2><span style="font-family: sans-serif;">{text to remain}</span></h2>

<h2><span style="font-family:font-size: 26.3158px;">{text to remain}</span></h2>

会变成

<h2>{text to remain}</h2>

关于如何使用正则表达式实现此目的的任何建议?理想情况下是经典 ASP(不要问)。

提前致谢

我不确定如何使用 ASP,但我会尝试一下并猜测它使用与 JavaScript 相同的正则表达式规则,希望这可能对您有所帮助:

var str =
    '<h2><span style="font-family: sans-serif;">{text to remain}</span></h2>';

// I put the no-regex version so you can see the difference in the output.
document.write(str);
document.write(str.replace(/<\/?\s*span[^>]*>/, ''));

请记住,这是一个非常简单的实现,在以下情况下会失败:<span data-text="woah>asd">。在一个理想的世界里,写成 woah&gt;asd 因此不是问题,但 HTML 并不总是有效的。

我很快就完成了这个,所以它可能有一些问题,但它确实有效。您需要为双引号更新它。

<%

text = "<h2><span style='font-family:font-size: 26.3158px;'>{text to remain}</span></h2>"

dim objRegExp : set objRegExp = new RegExp
objRegExp.Pattern = "<\/?span(\ style='.*')?>"
objRegExp.IgnoreCase = True
objRegExp.Global = True
cleanText = objRegExp.replace(text, "")


response.write text
response.write cleanText

%>

结果:

<h2><span style='font-family:font-size: 26.3158px;'>{text to remain}</span></h2>
<h2>{text to remain}</h2>

最后到达:

objRegExp.Pattern = "(<h2(.*?)>)(<span(.*?)>)(.*?)(<\/span>)(<\/h2>)"
vartext = objRegExp.Replace(vartext, "")