我正在尝试使用 Regex 验证 Java 中的表单字段,它可以有 5 种不同的格式可能性。我正在努力让这个工作起来。
要检查的字符串将在 4-6 个字母数字字符之间。
如果是 4 个字符,则必须全部是数字。
^\\d{4}$
如果是 5 个字符,则可以是全数字、第一个位置字母后跟 4 个数字,或者前 3 个位置字母后跟 2 个数字。
^\\d{5}$
^[a-zA-Z]\\d{4}$
^[a-zA-Z]{3}\\d{2}$
如果是 6 个字符,则第一个位置是字母,4 个数字,最后一个是另一个字母。
^[a-zA-Z]\\d{4}[a-zA-Z]$
但我似乎无法将所有内容拼凑在一起。
最佳答案
最简单的方法就是列出一组中每个可接受的模式,并用交替 (|
) 分隔:
^(\\d{4}|\\d{5}|[a-zA-Z]\\d{4}|[a-zA-Z]{3}\\d{2}|[a-zA-Z]\\d{4}[a-zA-Z])$
但是您可以通过结合一些替代方案来稍微改进这一点:
^([a-zA-Z\\d]?\\d{4}|[a-zA-Z]{3}\\d{2}|[a-zA-Z]\\d{4}[a-zA-Z])$
关于java - 使用正则表达式验证可变长度字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18777831/