这个
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
)。