【发布时间】:2011-03-02 11:31:49
【问题描述】:
假设我们有以下文本:“1 a,2 b,3 c,4 d”和以下表达式:/\d (\w)/g
我们要做的是提取正则表达式所表示的a、b、c、d。
不幸的是 "1 a,2 b,3 c,4 d".match(/\d (\w)/g) 将产生一个数组: 1 a,2 b,3 c,4 d 和 RegExp.$1将仅包含上次匹配的组,即 RegExp.$1 == 'd'。
我如何迭代这个正则表达式,以便我也可以提取组...我正在寻找一种内存高效的解决方案,即某种迭代器对象
编辑: 它必须是通用的。我在这里只提供一个简单的例子。一种解决方案是遍历数组并为没有全局标志的每个项目重新应用正则表达式,但我发现这个解决方案有点愚蠢,尽管它似乎是唯一的方法。
【问题讨论】:
-
接受您最近提出的问题。
-
是否需要正则表达式?您也可以按空格和逗号分隔并以这种方式提取。
-
是的,因为我只提供一个简单的例子......它比这更复杂。一种解决方案是为数组中的每个匹配项重新应用正则表达式,但这很愚蠢
标签: javascript regex node.js