【问题标题】:regex pattern matcher fails正则表达式模式匹配器失败
【发布时间】:2020-10-15 11:21:16
【问题描述】:

我想知道为什么下面的正则表达式模式匹配器会失败。

我已包含 ?A-Za-z0-9 以包含字符和数字

System.out.print(Pattern.compile("[?A-Za-z0-9]").matcher("aa22Aa?").matches());

【问题讨论】:

    标签: java regex


    【解决方案1】:

    ?A-Za-z0-9 只会匹配集合中定义的特定字符的一次出现

    您需要在模式中添加+ 量词,以便一个或多个字符匹配

    [?A-Za-z0-9]+
    

    你可以使用Pattern类的.matches()函数来编译模式并匹配字符串.

    System.out.print(Pattern.matches("[?A-Za-z0-9]+", "aa22Aa?"));
    

    编辑:

    正如@Andreas 正确指出的那样,您还可以使用String 类的.matches() 函数

    System.out.print("aa22Aa?".matches("[?A-Za-z0-9]+"));
    

    【讨论】:

    【解决方案2】:

    试试"[?A-Za-z0-9]+"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多