首页 > 解决方案 > Python Regex:如何在标签内重复捕获组

问题描述

我有一个像这样的正则表达式:

((?P<Dog>dog)|(?P<Animal>dog|cat|cow))

对于像“狗猫”这样的字符串,我希望正则表达式返回

    ***Capturing group: Result***    
    Dog    : dog
    Animal : [ dog, cat ]

我知道这与重复捕获组或捕获重复组有关。有没有办法在 Python 中做到这一点?

谢谢

标签: pythonregex

解决方案


尝试这个:

(?P<Animal>(?:(?:(?P<Dog>dog)|cat|cow)\s*)*)

但这会在一个字符串中为您提供所有动物,而不是在列表中。

真的取决于您要解决的问题。也许您需要将此正则表达式模式与findall()

(?P<Animal>(?P<Dog>dog)|cat|cow))

推荐阅读