我有一个字符串关键字word
,我想根据第一个单词
来匹配它,因为它位于key
之后。
我正在尝试这个正则表达式 /(?:key\s)word/g
并认为非捕获组不会出现在匹配中。但正则表达式匹配关键字
(使用string.match()
),这不是期望的结果。
如何在 JavaScript 中编写正则表达式,在 word
后面查找 key
,但排除 key
比赛?
(附加问题:非捕获组 (?:)
和捕获组 ()
之间的确切区别是什么?)
最佳答案
使用 exec
函数返回一个数组,其中第一个元素表示整个匹配,其中第二个元素指向第一个捕获组捕获的字符。
> var s = 'key word word'
> /\bkey\s+(\w+)/.exec(s)
[ 'key word', 'word', index: 0, input: 'key word word' ]
> /\bkey\s+(\w+)/.exec(s)[1]
'word'
> /\bkey\s+(word)/.exec(s)[1]
'word'
关于javascript - 如何查找文本但将其从匹配正则表达式中排除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38046325/