javascript - 正则表达式试图匹配没有加号
问题描述
"funny+gifs-politics+aww".match(/\+(\w+)/gis)
[+gifs, +aww]
当我在寻找 时,返回数组[gifs, aww]
。我把括号放在哪里似乎没有什么区别。
"funny+gifs-politics+aww".match(/(\+\w+)/gis)
结果相同。我在这里想念什么?谢谢。
解决方案
您可以使用该.matchAll()
方法,我认为它是相当新的。
const res = "funny+gifs-politics+aww".matchAll(/\+(\w+)/gis);
const subs = [];
for (const r of res) {
console.log(r);
subs.push(r[1]);
}
console.log(subs);
否则,您可以.exec()
在循环中使用。
const re = /\+(\w+)/gis;
const s = "funny+gifs-politics+aww";
let match = null;
const subs = [];
while((match = re.exec(s))) {
console.log(match);
subs.push(match[1]);
}
console.log(subs);
推荐阅读
- javascript - 当需要一个类并调用另一个方法中的方法时,究竟发生了什么?
- matlab - 如何在matlab中正确使用interp1来找到抛物线中的多个解决方案?
- pycharm - 在pycharm中连接jupyter服务器
- arrays - 遍历 Swift 数组并更改值
- html - Firefox 和 Chrome 中 Flexbox 的不同实现
- android - 无法检查三星 J5 上的对象 com.android.incallui.service.SecCallPopupService
- c++ - C++ - 对象何时被销毁
- laravel - preg_match():编译失败:字符类中的范围无效
- wordpress - 如何在古腾堡渲染额外的复选框?
- sql - 列出并杀死 PostgresSQL 中的所有死锁查询