Javascript 正则表达式在其边界上的匹配

Javascript 正则表达式在其边界上的匹配,javascript,regex,Javascript,Regex,我试图用正则表达式获取一个body标记,然后用附加的东西替换它。问题是,通过使用下面的正则表达式,它失败了,因为它选择了所有通过我的正则表达式应该保持的限制的东西 regex:/]>/i 测试字符串: 目标: 示例: 问题: 它不匹配,而是选择,*是一个贪婪的量词,可以很好地处理否定类。您遇到的问题是将量词与一起使用,使正则表达式引擎匹配(“read”),一直到最后都在查找除以外的字符,然后再查找。正则表达式引擎在最后的r>中找到此组合。所以,你选错了一对 您需要将*量词设置为[^>]求反字符类

我试图用正则表达式获取一个body标记,然后用附加的东西替换它。问题是,通过使用下面的正则表达式,它失败了,因为它选择了所有通过我的正则表达式应该保持的限制的东西

regex
/]>/i

测试字符串:

目标

示例

问题
它不匹配
,而是选择

*
是一个贪婪的量词,可以很好地处理否定类。您遇到的问题是将量词与
一起使用,使正则表达式引擎匹配(“read”),一直到最后都在查找除
以外的字符,然后再查找
。正则表达式引擎在最后的
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');
}
var testStr=”“;
var reg=/]*>/i;
var match=reg.exec(testStr);
如果(匹配!=null){
//我们知道正则表达式匹配
警报(匹配[0]。toString()+'\n');
}

这是

量词是
*也许你指的是字符或字符类?为了澄清我理解的正则表达式的错误部分:(请更正我)只要不包含>就选择。这可能是一个不实际的解释?@vihan1086:我可能使用了错误的措词,我的意思是在
[^>]
字符类之后使用
*
量词。@Bogdan:将解释添加到答案中。