【问题标题】:.NET Regex Unrecognized grouping construct.NET Regex 无法识别的分组构造
【发布时间】:2013-12-03 15:51:23
【问题描述】:

我正在尝试将正则表达式从 Python 转换为 C#,但我遇到了一些问题,因为我不断收到错误 Unrecognized grouping construction。

^(?:\[(?P<release_group>.+?)\][ ._-]*)
(?P<series_name>.+?)[ ._-]+
(?P<ep_ab_num>\d{1,3})
(-(?P<extra_ab_ep_num>\d{1,3}))?[ ._-]+?
(?:v(?P<version>[0-9]))?
(?:[\w\.]*)
(?:(?:(?:[\[\(])(?P<extra_info>\d{3,4}[xp]?\d{0,4}[\.\w\s-]*)(?:[\]\)]))|(?:\d{3,4}[xp]))
(?:[ ._]?\[(?P<crc>\w+)\])?
.*?

是什么给了我这个正则表达式中无法识别的分组构造的错误?

【问题讨论】:

  • (?P&lt;中删除Ps
  • 附注你有很多不必要的非捕获组(我数 5)。避免将某些内容放在括号中与将某些内容放在非捕获组中完全相同 - 但不那么混乱!

标签: c# python .net regex


【解决方案1】:

(?P&lt;groupname&gt;...) 在 .NET 正则表达式中变为 (?&lt;groupname&gt;...)。只需删除P。语义相同。

【讨论】:

猜你喜欢
  • 2018-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多