python - Python Regex:如何在标签内重复捕获组
问题描述
我有一个像这样的正则表达式:
((?P<Dog>dog)|(?P<Animal>dog|cat|cow))
对于像“狗猫”这样的字符串,我希望正则表达式返回
***Capturing group: Result***
Dog : dog
Animal : [ dog, cat ]
我知道这与重复捕获组或捕获重复组有关。有没有办法在 Python 中做到这一点?
谢谢
解决方案
尝试这个:
(?P<Animal>(?:(?:(?P<Dog>dog)|cat|cow)\s*)*)
但这会在一个字符串中为您提供所有动物,而不是在列表中。
真的取决于您要解决的问题。也许您需要将此正则表达式模式与findall()
:
(?P<Animal>(?P<Dog>dog)|cat|cow))
推荐阅读
- javascript - css 样式无法应用于本机反应
- python - 如何在 Flask 中显示来自 API 的多个图像
- c++ - OpenCV VideoCapture 输出图像剪切到左上角四分之一
- r - 在 Solve 之后使用“Yacas 向量”的右侧作为函数
- swift - 将数据转换为 UnsafeMutablePointer
- c++ - C++ 将 std::map 值设置为结构实例的指针
- python - 需要用 python 捆绑 docker 镜像和 docker rpms
- c++ - 如何捕获构造函数的原型?
- javascript - 如何在 chartist.js 脚本中使用 laravel 数组
- django - Django 从 1.11 升级到 2.2.1 URL 和路径问题