我正在尝试使用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]$
我似乎无法将它们拼凑在一起。
答案 0 :(得分:2)
最简单的方法是列出组中每个可接受的模式,以换项(|
)分隔:
^(\\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])$