gpt4 book ai didi

javascript - REGEX 匹配没有内部文本的开始和结束 span 标签

转载 作者:行者123 更新时间:2023-11-30 07:44:45 26 4
gpt4 key购买 nike

我正在使用以下 RegEx 来替换字符串:

<\/?(span)\b(?:\s+class="highlight")?>

但是这个正则表达式有一个缺陷......以这个示例代码为例:

<p>
Some text here
<span class="highlight">This is highlighted</span>
<span>This is not highlighted</span>
</p>

我的正则表达式将匹配两个 span 标签,尽管我只想要设置了 class="highlight"的标签。如何使用 RegEx 实现此目的?

PS:请不要告诉我我不应该为此使用 RegEx,因为我会降低你的答案,因为它是题外话。这是正则表达式专家的问题。

编辑:根据下面接受的答案,我正在使用以下正则表达式进行替换注意:代码在 javascript (mootools) 中

var regex = new RegExp("(<span[^>]+class\\s*=\\s*(\"|')highlight\\2[^>]*>)(.*?)(</span>)",'g');
var replaced = element.get('html').replace(regex, "$3");
element.set('html', replaced);

上面的正则表达式将用“some text here”(不带双引号)替换 some text here

最佳答案

这应该提供最大的灵 active 。

(<span[^>]+class\s*=\s*("|')highlight\2[^>]*>)[^<]*(</span>)

更新:

开始和结束标签所需的捕获组是\1 和\3。

关于javascript - REGEX 匹配没有内部文本的开始和结束 span 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8880760/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com