【发布时间】:2019-10-07 20:47:27
【问题描述】:
我想匹配字符串中的所有匹配项。
示例:
pc+pc2/pc2+pc2*rr+pd
我想检查有多少匹配的pc2 值和正则表达式是before and after special character 存在。
var str = "pc+pc2/pc2+pc2*rr+pd";
var res = str.match(new RegExp("([\\W])pc2([\\W])",'g'));
但我只有+pc2/ 和+pc2* 和/pc2+ 没有参与进来。
问题在于第一个匹配 / 已删除。所以在那之后,它从pc2+pc2*rr+pd开始检查。这就是为什么/pc2+ 值没有进入匹配项。
我该如何解决这个问题?
【问题讨论】:
-
你也只想要计数或匹配?
-
我想在数组中匹配。
-
或者,如果你的意思是重叠匹配,
let res = [..."pc+pc2/pc2+pc2*rr+pd".matchAll(/(?=(\Wpc2\W))\W/g)]然后Array.from(res, x => x[1]) -
@WiktorStribiżew 不工作。
-
@WiktorStribiżew 这不是一个重复的问题。我想要
+pc2/、+pc2*和/pc2+。收到了吗?
标签: javascript regex string regex-group regex-greedy