Javascript 用于嵌套值的正则表达式

Javascript 用于嵌套值的正则表达式,javascript,regex,Javascript,Regex,我正试图从一个看起来像这样的字符串中提取数字/刺 "[123][456][abc]" 另外,我不想包含“[”或“]”,我想将值分开。试试这个大小 /\[(\d+|[a-zA-Z]+)\]/ 编辑: 如果您可以支持“向前看”和“向后看” /(?<=\[)(\d+|[a-zA-Z]+)(?=\])/ 如果我们懂这门语言,这会容易得多。例如,在Javascript中,您可以执行以下操作: "[123][456][abc]".split(/[\[\]]/); 同样,在Python中: &g

我正试图从一个看起来像这样的字符串中提取数字/刺

"[123][456][abc]"
另外,我不想包含“[”或“]”,我想将值分开。

试试这个大小

/\[(\d+|[a-zA-Z]+)\]/
编辑:

如果您可以支持“向前看”和“向后看”

/(?<=\[)(\d+|[a-zA-Z]+)(?=\])/

如果我们懂这门语言,这会容易得多。例如,在Javascript中,您可以执行以下操作:

"[123][456][abc]".split(/[\[\]]/);
同样,在Python中:

>>> import re
>>> re.split(r'[\[\]]', "[123][456][abc]")
['', '123', '', '456', '', 'abc', '']
我相信在其他语言中也有这样做的方法。

请参阅,特别是“如何使用JavaScript RegExp对象”部分:

如果要检索 匹配的字符串,调用 RegExp对象的exec()函数 您创建的,例如:mymatch= myregexp.exec(“主题”)。这 函数返回一个数组。第零点 数组中的项将保存文本 这是由正规的 表情。下列项目 包含与匹配的文本 在regexp中捕获括号, 如果有的话。mymatch.length表示 匹配[]数组的长度,即 比捕获的数量多一个 正则表达式中的组。 mymatch.index指示字符 在主题字符串中的位置 正则表达式匹配的。 mymatch.input保留 主题字符串


这说明了如何访问各个括号中的组。您可以将其与诸如
/\[(\w+)\]/g

[([\d].[a-z])+]之类的模式结合使用,但在includes“]”中,我不确定如何指定您使用的语言将非常有用。您所说的“includes”是什么意思?唯一包含的东西是捕获过程中的内容。另外,你写的东西是无效的——那些外括号需要转义。至于“哪一组”。。。这些模式将匹配任何组;提取特定组取决于您的编程语言。是的,这是可行的,但如何获取第二组和第三组?@preferer捕获组可以分配给标量变量或数组,也可以循环。只要拿你想要的。@Kyle:
g
代表全局,而不是贪婪。它会导致重复应用正则表达式,直到找不到更多匹配项为止。您的代码所做的是将每个数字或字母块替换为自身,从而生成与您开始使用的字符串相同的字符串(不是数组)。@Alan global,正确。这段代码旨在说明正则表达式将捕获什么。String.match不接受函数作为第二个参数,因此我使用了String.replace。这将返回所需匹配项的数组<代码>变量文本=“[12][34][56][bxe]”;var数组=text.match(/(\d+|[a-zA-Z]+)/g)>>> import re >>> re.split(r'[\[\]]', "[123][456][abc]") ['', '123', '', '456', '', 'abc', '']