可能是由于我对自己的误解,但想确认..
var match = '4 bedroom house'.match( /(?:\d+ bedroom)(.*)/i);
据我所知,?:
应该意味着当该组用于匹配时,它不会在结果中返回?
但是,当我登录日志match
时,我得到了:
["4 bedroom house", " house", index: 0, input: "4 bedroom house"]
我对match [0]不感兴趣,如何排除?
答案 0 :(得分:0)
(?:..)
称为非捕获组,仅执行匹配操作。 match
函数反过来返回所有匹配的字符。为了只返回捕获的字符,您需要调用exec
函数。
> /(?:\d+ bedroom)(.*)/i.exec('4 bedroom house')[1]
' house'
> /(?:\d+ bedroom\b)\s*(.*)/i.exec('4 bedroom house')[1]
'house'
最后的 [1]
有助于打印由组索引1捕获的所有字符。
答案 1 :(得分:0)