【发布时间】:2020-10-15 11:21:16
【问题描述】:
我想知道为什么下面的正则表达式模式匹配器会失败。
我已包含 ?A-Za-z0-9 以包含字符和数字
System.out.print(Pattern.compile("[?A-Za-z0-9]").matcher("aa22Aa?").matches());
【问题讨论】:
我想知道为什么下面的正则表达式模式匹配器会失败。
我已包含 ?A-Za-z0-9 以包含字符和数字
System.out.print(Pattern.compile("[?A-Za-z0-9]").matcher("aa22Aa?").matches());
【问题讨论】:
?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]+"));
【讨论】:
试试"[?A-Za-z0-9]+"。
【讨论】: