我正在尝试使用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 - 使用Regex验证可变长度的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18777831/