为什么这个正则表达式与结束>匹配?

时间:2014-12-11 20:25:25

标签: javascript regex

对于这个正则表达式:

/<(\/?)(\w+)([^>]*?)>/

在这个字符串上:

<div class='test'><b>Hello</b> <i>world!</i></div>

返回的比赛是:

<div class='test'>

我对([^>]*?)捕获感到困惑。不是^>意味着它是>的倒数吗?

1 个答案:

答案 0 :(得分:8)

这是正则表达式的细分:

<(\/?)与开头<匹配,可能后跟/

(\w+)匹配许多单词字符(它在parens中,所以捕获组将自己包含HTML元素)

([^>]*?)>匹配不是>的多个字符(懒惰),后跟>

因此,在您的示例中,它与<div class='test'>

匹配是正确的