javascript - 正则表达式匹配括号之间的内容

标签 javascript regex arrays url url-routing

我很难让它发挥作用。我有一个像这样的字符串:

something/([0-9])/([a-z])

我需要正则表达式或一种方法来获取括号之间的每个匹配项并返回一个匹配项数组,例如:

[
  [0-9],
  [a-z]
]

我使用的正则表达式是 /\((.+)\)/ 似乎匹配正确的东西 if 只有 一个 一组括号。

如何使用 JavaScript 中的任何 RegExp 方法获得上述数组?我只需要返回该数组,因为数组中的返回项将被循环以创建 URL 路由方案。

最佳答案

您需要通过在 .+ 之后添加 ? 使您的正则表达式模式“非贪婪”

默认情况下,*+ 是贪婪的,因为它们将匹配尽可能长的字符字符串,忽略字符串中可能出现的任何匹配。

非贪婪使得模式只匹配可能的最短匹配。

参见 Watch Out for The Greediness!以获得更好的解释。

或者,将您的正则表达式更改为

\(([^\)]+)\)

它将匹配任何本身不包含括号的括号组。

关于javascript - 正则表达式匹配括号之间的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6208367/

相关文章:

javascript - 获取等于选中的单选项目的值

java - HtmlUnit 属性未定义脚本错误

Python通过正则表达式从文件中读取行

javascript - 在javascript中选择圆括号之间的文本

javascript - 检查具有索引的对象是否在数组中

Javascript getUTCDate 在选择 2013/04/01 时返回 "31"作为日期?

javascript - 根据速度和网格计算减速度

C# - 如何使用 Linq 和 Regex 实现单个字符串的多重匹配?

javascript - OO JavaScript : array not getting initialized

c++ - 将数组传递给函数和在 main 中声明数组有什么区别?