javascript - 如何查找文本但将其从匹配正则表达式中排除?

标签 javascript regex regex-lookarounds

我有一个字符串关键字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/

相关文章:

regex - 使用正则表达式进行负向预测,以排除 Google Analytics 和 Google Search Console 中包含特定单词的短语

javascript - 使用 r.js 打包 Javascript 库所需的输入

javascript - Webpack 配置不在公共(public)文件夹中生成 index.html

javascript - 使用正则表达式获取由 "/"分隔的单词

java - 任意顺序的多个组的正则表达式,每个组有一个多重性

regex - 匹配 MM/YYYY 或 m/YYYYY 的正则表达式

javascript - vue.js CLI 应用程序中的 <b-list-group-item> 未呈现 bootstrap-vue

javascript - 如何确定一个 YouTrack 工作流程是否由另一个 YouTrack 工作流程触发

regex - ASP.NET MVC 正则表达式路由约束

regex - 如何根据正则表达式应用 "filter"?