访问 JavaScript 正则表达式中的所有捕获
尝试在 JavaScript 正则表达式中捕获多个组时会出现问题,其中只有最后一个组捕获被保留。
考虑以下内容例如:
"foo bar baz".match(/^(\s*\w+)+$/)
它不会返回 ["foo", "bar", "baz"] 等所有匹配项,而是只返回 ["baz"]。出现此行为的原因是重复的捕获组会覆盖以前的捕获。
要解决此问题,请考虑替代方法:
例如,捕获包含在
中的单词序列>并将它们拆分为 ;,请考虑以下示例:var text = "a;b;<c;d;e;f>;g;h;i;<no no no>;j;k;<xx;yy;zz>"; var r = /<(\w+(;\w+)*)>/g; var match; while ((match = r.exec(text)) != null) { print(match[1].split(";")); }
参考文献:
以上是如何在 JavaScript 正则表达式中捕获多个组?的详细内容。更多信息请关注PHP中文网其他相关文章!