为了账号安全,请及时绑定邮箱和手机立即绑定

如何捕获多个重复的组?

如何捕获多个重复的组?

眼眸繁星 2019-09-26 09:47:52
如何捕获多个重复的组?我需要捕获相同模式的多个组。假设我有以下字符串:HELLO,THERE,WORLD我写了以下模式^(?:([A-Z]+),?)+$我想做的是捕获每个单词,这样第1组是:“ HELLO”,第2组是“ THERE”,第3组是“ WORLD”我的正则表达式实际上只捕获了最后一个,即“世界”。我正在这里测试我的正则表达式,我想将它与Swift一起使用(也许Swift中有一种方法可以某种方式获取中间结果,以便我可以使用它们?)更新:我不想使用split。我现在只需要如何捕获与模式匹配的所有组,而不仅仅是最后一个。
查看完整描述

3 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

模式中只有一组,您只能在该组中获得一个准确的结果。如果您的捕获组被该模式重复(您+在周围的非捕获组上使用了量词),则只会存储与其匹配的最后一个值。

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

或者,展开您的正则表达式,并让该模式在要获取结果的每个组中包含一个捕获组:

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


查看完整回答
反对 回复 2019-09-26
?
慕后森

TA贡献1802条经验 获得超5个赞

我认为您需要这样的东西。

b="HELLO,THERE,WORLD"re.findall('[\w]+',b)

在Python3中哪个会返回

['HELLO', 'THERE', 'WORLD']


查看完整回答
反对 回复 2019-09-26
  • 3 回答
  • 0 关注
  • 766 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信