加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 06:08:14 所属栏目:百科 来源:网络整理
导读:我有以下方法来检查允许的字符: private boolean checkIfAllCharsAreValid(String test) { boolean valid = false; if (test.matches("^[a-zA-Z0-9,.;:-_'s]+$")) { valid = true; } return valid;} 但是如果test有字符 – 在匹配中返回false.我必须逃避
我有以下方法来检查允许的字符:

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-]*");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读