使用递归正则表达式打破列表



我第一次尝试使用递归正则表达式来分解列表中的项目,但我无法获得多个匹配项。

我有一个字符串,例如 array(string,boolean) .我想从内部提取stringboolean,所以有这个正则表达式:

array((?:([a-z]+)[,S]*)(?:(?R)|))

使用 regex101.com 进行测试时,我成功地匹配了string,但没有boolean。我试图移动一些括号,以防我的分组方式错误。

我想得到一些关于我哪里出错的建议?还是我误解了递归正则表达式的工作原理?

要帮助:https://regex101.com/r/Vkmvr0/2

如果我

猜对了,你会有的另一个选择可能是使用环顾四周,例如使用类似于以下内容的表达式:

(?<=(|,)[^rn,)]*(?=,|))

如果您想探索/简化/修改表达式,它已经 在右上角的面板上解释 regex101.com。如果您愿意,您可以 也可以在这个看 链接,它将如何匹配 针对某些示例输入。


最新更新