【问题标题】:Check that String is alphanumeric with length 1 to 5检查字符串是否为长度为 1 到 5 的字母数字
【发布时间】:2016-08-01 08:14:08
【问题描述】:

我写了如下测试代码sn-p:

"123".matches("\\[a-zA-Z0-9]{1,5}");

但是,它返回false

为什么以及如何解决这个问题?

【问题讨论】:

  • 考虑到[] 的不平衡,我很惊讶它居然能运行。
  • 第一个[ 不应转义。删除\
  • @Andy Turne 长度应为 {1,5}
  • @Andy Turne 你是对的

标签: java regex string alphanumeric


【解决方案1】:

通过转义第一个[,您将其变为文字[,同时您想定义一个字符类(括号表达式)。

删除\

"123".matches("[a-zA-Z0-9]{1,5}");
               ^  

Java demo

System.out.println("123".matches("[a-zA-Z0-9]{1,5}")); // = > true

【讨论】:

    【解决方案2】:

    您正在使用\\ 转义第一个方括号,这意味着方括号之间的表达式不被视为字符类。删除转义,你应该没问题:

    "123".matches("[a-zA-Z0-9]{1,5}"
    // Here -------^
    

    【讨论】:

      【解决方案3】:

      没有\\ 的正则表达式可以工作。你不需要逃避任何事情。

      "123".matches("[a-zA-Z0-9]{1,5}");
      

      【讨论】:

        猜你喜欢
        • 2017-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-18
        • 2014-03-03
        • 2011-07-07
        • 1970-01-01
        相关资源
        最近更新 更多