正则表达式,用于检查允许的字符在Java中不起作用

前端之家收集整理的这篇文章主要介绍了正则表达式,用于检查允许的字符在Java中不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下方法来检查允许的字符:

private boolean checkIfAllCharsAreValid(String test) {
    boolean valid = false;
    if (test.matches("^[a-zA-Z0-9,.;:-_'\\s]+$")) {
        valid = true;
    }
    return valid;
}

但是如果test有字符 – 在匹配中返回false.我必须逃避 – ?

解决方法

在[…]里面 – 符号是专门处理的. (你在表达式的开头用你的a-z就可以自己使用它.)

你需要逃避 – 角色

[a-zA-Z0-9,.;:\-_'\s]
              ^

或者把它放在[…]表达式中的最后(或第一个)

[a-zA-Z0-9,.;:_'\s-]
                   ^

进一步说明:

>从技术上讲,所有字符在空字符串中都有效,所以我会在表达式中从*更改为*.
> String.matches检查完整字符串,因此^和$是多余的.
>你的整个方法可以被视为

return test.matches("[a-zA-Z0-9,.;:_'\\s-]*");

猜你在找的正则表达式相关文章