我正在尝试制作一个正则表达式,该表达式将匹配由特定的 3 个字符字符串后跟 9 位数字组成的帐号。例如
abc123456789
xyz123456789
def987654321
我已经想出了如何使用以下表达式完成,但想知道是否有更好的方法:
abc[0-9]{9}|xyz[0-9]{9}|def[0-9]{9}
您可以仅为特定字符串创建 OR,因为它是唯一更改的一件事:
(abc|xyz|def)[0-9]{9}
如果帐号只能包含 abc
、 def
或 xyz
,您可以专门使用这些字符串|
,正如豪尔赫·坎波斯所指出的:
(abc|def|xyz)d{9}
但是,假设它可以从非数字字符的任意组合开始,这是最紧凑的表达方式:
D{3}d{9}