【问题标题】:NodeJS RegExp: how to access full list of resultsNodeJS RegExp:如何访问完整的结果列表
【发布时间】:2015-10-15 06:45:43
【问题描述】:

当我 .exec() 在 Node.js 中使用正则表达式时,我无法访问完整的结果列表。这是我的代码:

var p = /(aaa)/g;
var t = "someaaa textaaa toaaa testaaa aaagainst";
p.exec(t);
> [ 'aaa', 'aaa', index: 4, input: 'someaaa textaaa toaaa testaaa aaagainst' ]

无论如何,我只得到两个结果。是我在 RegExp 本身上的错误吗?

任何帮助将不胜感激!

【问题讨论】:

  • 使用match, exec 将只返回第一个匹配项
  • 谢谢!这就是我所需要的!

标签: javascript regex node.js


【解决方案1】:

exec 只会返回第一个匹配的结果。得到所有结果

  1. 使用match

    var p = /(aaa)/g;
    var t = "someaaa textaaa toaaa testaaa aaagainst";
    var matches = t.match(p);
    

var p = /(aaa)/g,
  t = "someaaa textaaa toaaa testaaa aaagainst";
var matches = t.match(p);

console.log(matches);
  1. whileexec 一起使用

    while(match = p.exec(t)) console.log(match);
    

var p = /(aaa)/g,
  t = "someaaa textaaa toaaa testaaa aaagainst";

var matches = [];
while (match = p.exec(t)) {
  matches.push(match[0]);
}

console.log(matches);

阅读:match Vs exec in JavaScript

【讨论】:

    【解决方案2】:
    var p = /(aaa)/g;
    var t = "someaaa textaaa toaaa testaaa aaagainst";
    t.match(p);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      • 2018-07-27
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      相关资源
      最近更新 更多