我第一次尝试使用递归正则表达式来拆分列表中的项目,并且我无法获得多个匹配项。
我有一个字符串,例如array(string,boolean)
。我想从内部提取string
和boolean
,因此请使用此正则表达式:
array\((?:([a-z]+)[,\S]*)(?:(?R)|\))
使用regex101.com进行测试时,我成功匹配string
,但未成功匹配boolean
。我试图围绕一些parens四处移动,以防我分组的方式错误。
我喜欢关于我出错的地方的一些建议吗?或者我误解了递归正则表达式是如何工作的?
答案 0 :(得分:0)
如果我猜对了,您本来可以选择的另一种选择可能是使用环顾四周,例如使用类似于以下内容的表达式:
(?<=\(|,)[^\r\n,)]*(?=,|\))
如果您想探索/简化/修改表达式,可以 在右上角的面板上进行了说明 regex101.com。如果您愿意, 也可以在this link中观看它的匹配方式 针对一些样本输入。