这个

var re = /[^<a]b/;
var str = "<a>b";

console.log(str.match(re)[0]);


匹配>b

但是,我不明白为什么/[^<a>]b/这个模式不匹配任何内容。我只想捕获“ b”。

最佳答案

/[^<a>]b/不执行任何操作的原因是您忽略了<a>作为单独的字符,因此将其重写为/[^><a]b/会执行相同的操作。我怀疑这是您想要的。请尝试以下操作:

var re = /<a>(b)/;
var str = "<a>b";

console.log(str.match(re)[1]);


此正则表达式首先查找看起来像<a>b的字符串,但它会用括号捕获b。要访问b,只需在调用[1]而不是.match时使用[0],这将返回整个字符串(<a>b)。

09-25 18:10
查看更多