python中存在Regex错误,但没有PCRE2(regex101.com)



我正在尝试创建一个正则表达式来验证以下格式:

  1. [1个或多个不包括X的大写字母],例如BY、BZ、B
  2. [1个或多个不包括X][X][1-9之间的任意数字]的大写字母,例如BYX11、BZX12、BX5

我使用regex101.com和PCRE2风味开发了这个正则表达式

^[A-WY-Z]+X*(?(?<=X)[1-9]+|$)$

然而,当我在Python中切换它时,它不起作用——有人知道我需要更改什么才能使它起作用吗?它说的是不完整的群体结构。

我尝试根据python语法对此进行更新,但它表示条件(?<=X)的前一个标记是不可量化的。

^[A-WY-Z]+X*((?<=X)?((1)[1-9]+)|$)$

有人知道如何让顶级正则表达式在python中工作吗?

您只需使用

^[A-WY-Z]+(?:X[1-9]+)?$

请参阅regex演示。

详细信息

  • ^-字符串的开头
  • [A-WY-Z]+-除X之外的一个或多个大写ASCII字母
  • (?:X[1-9]+)?-X和一个或多个非零数字的可选序列
  • $—字符串结束

最新更新