假设我们有以下文本:"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'。
我该如何迭代这个正则表达式,以便我也可以提取组…我正在寻找一种内存效率高的解决方案,即某种迭代器对象。
编辑:它需要是通用的。我只在这里提供了一个简单的例子。一种解决方法是循环遍历数组,并为每个项目重新应用没有全局标志的正则表达式,但我认为这种解决方法有点愚蠢,尽管它似乎是唯一的方法。
我们想要做的是提取由正则表达式表示的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'。
我该如何迭代这个正则表达式,以便我也可以提取组…我正在寻找一种内存效率高的解决方案,即某种迭代器对象。
编辑:它需要是通用的。我只在这里提供了一个简单的例子。一种解决方法是循环遍历数组,并为每个项目重新应用没有全局标志的正则表达式,但我认为这种解决方法有点愚蠢,尽管它似乎是唯一的方法。