开始是这样的。
^[A-Z]+[A-Z0-9-_.]+[A-Z0-9]$
看起来没什么问题,但是如果只有两个字符时就出错了,因为中间变成必须的了。
改进后
^[A-Z]+[A-Z0-9-_.]{0,}[A-Z0-9]$
最后发现其中 {0,} 就是贪婪模式,可以用 * 替代
^[A-Z]+[A-Z0-9-_.]*[A-Z0-9]$