python的正则表达式:删除重复的组名

时间:2015-07-30 12:50:58

标签: regex python-3.x

我有这个正则表达式 -

(?P<名称> +。)(P< ReleaseYear>([0-9] +)?)|(P<名称> +?)(P< Prginfo> - [0-9]) |(?P<名称> +)?(?P< Prginfo> \ S + \ d + \ S +сезон\ S *)|(?P<名称> +)(P< Prginfo> \ S +сезон\ S ?* \ d +)|(p<标题> +)

这在.NET代码中运行得非常好。但是当我尝试在python中使用它时,我收到错误 - “sre_constants.error:重新定义组名'Title'作为组3;是第1组”

1 个答案:

答案 0 :(得分:1)

你不能在python正则表达式中使用重复的组名,因为它可能会引起混淆,实际上python将它们用作字典键。

  

(?P<name>...)

     

与常规括号类似,但可通过符号组名称访问组匹配的子字符串。组名必须是有效的Python标识符,并且每个组名必须在正则表达式中仅定义一次。符号组也是一个编号组,就像该组未被命名一样。