我正在尝试编写我的第一个正则表达式..我有以下组合的价值
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"
我的常规指数:
^(([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)的表达式?
解决方法
这似乎过于复杂.
^[a-zA-Z]\d{1,5}(?:\(M\))?$
应该这样做.