如何捕获多个重复组?

2023-12-07

我需要捕获相同模式的多个组。假设,我有以下字符串:

HELLO,THERE,WORLD

我写了以下模式

^(?:([A-Z]+),?)+$

我想要它做的是捕获每一个单词,因此第 1 组是:“HELLO”,第 2 组是“那里”,第 3 组是“世界”。我的正则表达式实际上捕获的只是最后一个,即“WORLD”。

我正在测试我的正则表达式here我想将它与 Swift 一起使用(也许 Swift 中有一种方法可以以某种方式获取中间结果,以便我可以使用它们?)

我不想使用split。我现在只需要知道如何捕获与模式匹配的所有组,而不仅仅是最后一个组。


对于模式中的一组,您只能获得该组中的一个精确结果。如果您的捕获组按模式重复(您使用了+周围非捕获组上的量词),仅存储与其匹配的最后一个值。

您必须使用语言的正则表达式实现函数来找到所有匹配项模式的,那么您必须删除非捕获组的锚点和量词(并且您也可以省略非捕获组本身)。

或者,扩展您的正则表达式,让模式包含您想要在结果中获得的每组一个捕获组:

^([A-Z]+),([A-Z]+),([A-Z]+)$
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何捕获多个重复组? 的相关文章

随机推荐