【发布时间】:2017-11-11 15:21:22
【问题描述】:
有没有办法在 python 的正则表达式命名组中使用相同的名称?
例如(?P<n>foo)|(?P<n>bar).
用例:
我正在尝试使用此正则表达式捕获 type 和 id:/(?=videos)((?P<type>videos)/(?P<id>\d+))|(?P<type>\w+)/?(?P<v>v)?/?(?P<id>\d+)?
从这个字符串:
- /channel/v/123
- /ch/v/41500082
- /频道
- /videos/41500082
现在我收到错误:
redefinition of group name 'id' as group 6; was group 3
【问题讨论】:
-
一个命名的捕获组是唯一的,除非您使用仅由较新的
regex模块支持的分支重置:(?|...)- 您是否有在线演示您正在尝试什么达到?此外,条件正则表达式或环视很可能就足够了。
标签: python regex regex-lookarounds regex-group