我正在尝试创建一个正则表达式来验证以下格式:
- [1个或多个不包括X的大写字母],例如BY、BZ、B
- [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
和一个或多个非零数字的可选序列$
—字符串结束