javascript - 从 JavaScript REGEX 获取分组数组
问题描述
我目前正在为我正在为我的 Discord 机器人编写的字符串比较程序生成一个正则表达式语句。我正在使用以下生成的正则表达式字符串:
let regex = new RegExp("(TRIGGER WORD) (.*?)", "g");
然后我使用以下命令执行它:
let returns = regex.exec("TRIGGER WORD WHAT");
我得到以下信息:
[ 'stud, ', 'stud,', '', index: 0, input: 'stud, what' ]
没有迹象表明我最重要的是要获得的“什么”分组。
从 PHP 的背景来看,我希望我会得到一个数组,如下所示:
['TRIGGER WORD', 'WHAT']
解决方案
在您的正则表达式中,最后一部分(.*?)
是惰性的,并且会尽可能少地重复点。
对于您的示例数据,您可以匹配第二组greedy (.*)
中的量词。您的结果在捕获组 1 和 2 中。
这将TRIGGER WORD
在第一组中匹配,一个空格和第二组中的后续内容。
let regex = new RegExp("(TRIGGER WORD) (.*)", "g");
let returns = regex.exec("TRIGGER WORD WHAT");
console.log(returns);
console.log(returns[1]);
console.log(returns[2]);
推荐阅读
- c# - 如何从 SQL Server 向 gmail 发送电子邮件
- python - 数据框的所有组合,按 ID 分组并按升序元素排序
- c# - Windows C# 窗体:如何在按钮上显示具有透明背景的 GIF 动画?
- node.js - 如何同时使用redis和sequelize
- php - 需要通过 PHP 解析未过滤的 url 查询,无法处理 '&' 符号
- typescript - 如何在打字稿中调用两个连续的rest api?
- count - PowerBI - 计算特定列的空白值
- ids - OSSEC 将允许的字段从解码器添加到规则描述
- laravel - Laravel Aggregates 查询无法根据 group by
- python - 代码行运行后不显示标题格式