java - JAVA 中 "ABC-1234"的正则表达式验证

标签 java regex

如果我希望用户匹配,正则表达式是什么。“abc-1234”

所以 3 个字母(大写或小写)后跟 4 个数字...

这是我到目前为止所拥有的(非常感谢!):

    if (id.matches("^[A-Z][a-zA-Z]{3}-[\\d]{4}$")) {
        this.id = id;
    } else { 
        throw new IllegalArgumentException("Inventory ID must be in the "
            + "form of ABC-1234");
    }

}

最佳答案

Pattern Javadoc说(编辑/部分)

Predefined character classes

\d    A digit: [0-9]

POSIX character classes (US-ASCII only)

\p{Lower}     A lower-case alphabetic character: [a-z]
\p{Upper}     An upper-case alphabetic character:[A-Z]
\p{Alpha}     An alphabetic character:[\p{Lower}\p{Upper}]

所以你可以使用类似的东西

if (id.matches("\\p{Alpha}{3}-\\d{4}")) {

关于java - JAVA 中 "ABC-1234"的正则表达式验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37222358/

相关文章:

java - 解析 JSON 时位置 0 处出现意外标记 END OF FILE

java - 向文本区域添加滚动条

java - 无法使用 Rome API 从提要中读取图像 URL

java - 如何在 Java 中匹配对象数组的 Map

c# - 正则表达式 - 仅当另一个命名组匹配时命名组

regex - 获取定界符之间的相对大小字符串

java - 替换正则表达式出现的地方

regex - sed 打印后 sed 替代品不起作用

java - "Non-static method cannot be referenced from a static context"错误

php - 正则表达式不适用于密码?不知道为什么