我很难让它发挥作用。我有一个像这样的字符串:
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/