gpt4 book ai didi

javascript - 正则表达式 : how to exclude matched groups from $N?

转载 作者:行者123 更新时间:2023-11-29 10:51:10 25 4
gpt4 key购买 nike

我已经制作了一个有效的正则表达式,但我认为这不是最佳用例:

el = '<div style="color:red">123</div>';
el.replace(/(<div.*>)(\d+)(<\/div>)/g, '$1<b>$2</b>$3');
// expecting result: <div style="color:red"><b>123</b></div>

谷歌搜索后我发现 (?: ... )在正则表达式中 - 意味着忽略组匹配,因此:

el.replace(/(?:<div.*>)(\d+)(?:<\/div>)/g, '<b>$1</b>');
// returns <b>123</b>

但我需要第一个示例的预期结果。

有没有办法排除它们?只是写replace(/.../, '<b>$1</b>')

这只是了解如何在正则表达式中排除组的一个小案例。我知道,什么we can't parse HTML with regexp :)

最佳答案

因此,您希望在仅使用替换 <b>$1</b> 的情况下获得相同的结果?

在你的情况下只是 replace(/\d+/, '<b>$&</b>')就足够了。

但是如果你想确保数字周围有 div 标签,你可以使用 lookarounds 和 \K就像在下面的表达式中一样。除了 JS 不支持后视也不 \K ,所以你运气不好,你必须在 JS 中为此使用捕获组。

<div[^>]*>\K\d+(?=</div>)

关于javascript - 正则表达式 : how to exclude matched groups from $N?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9963525/

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