有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java正则表达式模式匹配器失败

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

我加入了?A-Za-z0-9来加入字符和数字

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


共 (2) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    ?A-Za-z0-9将只匹配集合中定义的特定字符的单个匹配项

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

    [?A-Za-z0-9]+
    

    您可以使用Pattern类的.matches()函数编译模式并将其与字符串匹配,而不是调用.compile()函数来编译模式,然后调用.matcher()函数来创建Matcher

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

    编辑:

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

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