我正在尝试编写我的第一个正则表达式..我有以下组合的价值
letters [upper or lowercase]
numbers [0-9]
letters in parentheses [(M)]
no spaces or other characters
一些例子:
OK: "A3"
OK: "N15"
OK: "A126"
OK: "B6469"
OK: "A57(M)"
OK: "A1(M)"
NOT OK: "TF9 3TF"
NOT OK: "B64 69"
My Regular Exp:
^(([a-zA-Z][1-9]\([a-zA-Z]\)?)|([a-zA-Z][1-9][1-9]\([a-zA-Z]\)?)|([a-zA-Z][1-9]?)|([a-zA-Z][1-9][1-9]?)|([a-zA-Z][1-9][1-9][1-9]?)|([a-zA-Z][1-9][1-9][1-9][1-9]?))$
它对我来说很好。但我想要它的最佳解决方案,就像我的正则表达式似乎太长,因为对于每个组合我做一个表达,然后结合所有这些,但我想减少我的正则表达式,如我的示例代码包含第一个字母然后数字可以是一个或多个,但直到5。 告诉我如何制作一个适用于(A1,A12,A123,A1234,A12345)的表达式?
答案 0 :(得分:6)
这似乎过于复杂。
^[a-zA-Z]\d{1,5}(?:\(M\))?$
应该这样做。