javascript -/{.*?}/g 之间不同。和/{(.*?)}/g

标签 javascript regex

在 Chrome 中,

/{.*?}/g.exec('aaa{eee}uuuu')

返回

["{eee}"]

,而

/{(.*?)}/g.exec('aaa{eee}uuuu')

返回

["{eee}", "eee"]

第二个结果正是我所期望的。为什么第一个代码不返回“{eee}”的裸字符串?

最佳答案

因为在第一个正则表达式中您没有使用大括号。大括号用于对传递的字符串进行分组,但在第二个正则表达式中,您使用了大括号,根据您的输入对“eee”进行分组。

第一个正则表达式返回仅包含一个匹配元素的数组。但在第二个表达式中,它返回具有 2 个元素的数组。 [0] => 整个字符串匹配,[1] => 括号内的字符串匹配。如果使用更多大括号,那么它将返回 [2] => ...,[3] => ... 等

引用:JavaScript Regex Global Match Groups

关于javascript -/{.*?}/g 之间不同。和/{(.*?)}/g,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35169311/

相关文章:

javascript - 在 sequelize 中,如何定义 X 属于 A 或 B 的关系?

javascript - Dragstart 事件不触发reactjs

javascript - 改变对象的结构 javascript

javascript - 将 promise 转换为 Bluebird

javascript - 用于 react 递归的多级下拉列表

用 R 字符串中的反斜杠下划线 "_"替换下划线 "\_"

使用 str_extract_all 在 R 中运行正则表达式 正则表达式尚未实现

javascript - 用于字符串中匹配计算的正则表达式

regex - 打开/关闭 Clojure 重新模式中的贪婪性

java - 在 a\x 十六进制正则表达式模式中使用变量