忽略正则表达式匹配的前缀(如果存在),然后继续匹配



我想匹配集合[A-Z]的前1到3个字符,但我想忽略前缀XYZ_

示例:

  • XYZ_ABC1234
  • XYZ_DEF1234
  • DEF0000A0
  • D00A0
  • BCDA1
  • CDE

我正在尝试使用^(?!XYZ_)?[A-Z]{1,3}形式的负前瞻。但是,这将返回前两个示例中的"XYZ"(适用于其他示例(。即其输出为:

  • XYZ_ABC1234
  • XYZ_DEF1234
  • DEF0000A0
  • D00A0
  • BCDA1
  • CDE

如何忽略字符串中的前缀(如果存在(并根据我要查找的条件进行匹配?

事实证明,这在某种程度上是特定于re模块的Python。

我能够使用K来实现我想要的结果,它重置了报告的匹配的起点。

因此,如果使用Perl兼容Regex表达式(PCRE(,答案是:^(?:XYZ_K)?[A-Z]{1,3}

更多信息可以在这里阅读

相关内容

最新更新