gpt4 book ai didi

javascript - 正则表达式匹配其边界

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

我正在尝试使用正则表达式获取正文标签,然后用附加的内容替换它。问题是,通过使用以下正则表达式,它失败了,因为它选择了所有通过我的正则表达式应该保持的限制的东西。

正则表达式:/<body.*[^>]>/i

测试 字符串:<bla bla ><body class='a b ... what ever..d'><fo bar>

目标:<body class='a b ... what ever..d'>

示例:http://jsfiddle.net/bogdanm/qbccq79z/

问题:而不是匹配 <body class='a b ... d'>它选择 <body class='a b ... what ever..d'><fo bar>

最佳答案

* 是一个贪心量词,适用于否定类。您遇到的问题是将量词与 . 一起使用,这使得正则表达式引擎匹配(“读取”)直到最后寻找 > 以外的字符 和然后 >。正则表达式引擎在最后的 r> 找到这个组合。所以,你得到了错误的匹配。

您需要将 * 量词设置为 [^>] 否定字符类并删除 .* 匹配所有直到结束:

var testStr= "<bla bla ><body class='a b c d'><fo bar>";
var reg = /<body[^>]*>/i;

var match = reg.exec(testStr);

if(match != null){
// we know regex matched
alert(match[0].toString() + '\n');
}

这是 updated demo

关于javascript - 正则表达式匹配其边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30782967/

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