我目前正在尝试设置程序,因此用户必须输入特定的字符串,例如DeskID
,然后输入2-3个整数,因此:DeskNO10
或{{1} }
此刻,我尝试过:
DeskNO42
这不起作用 - 如果我只是使用if(Pattern.matches("[DeskNO0-9]",desk)) {
System.out.println("Accepted");
} else {
System.out.println("Rejected");
}
println
和%s
来使用简单的%2d
语句,是否有任何可行的建议或建议是否可行p>
答案 0 :(得分:2)
你可以做到
if (desk.matches("DeskNO\\d{2,3}")) {
答案 1 :(得分:2)
你的正则表达式使用字符类,即括在方括号中的东西。这意味着表达式将接受方括号中定义的任何单个字符,即D
,e
,s
,k
,{{ 1}},N
,O
,0
,...,1
。这肯定是不你想要的。
正确的正则表达式是
9
但是,方法的选择取决于你:正则表达式可能对于简单的工作而言太过分了。您可以测试字符串"DeskNO\\d{2,3}"
,然后使用startsWith("DeskNO")
后缀,并检查它是否是两位或三位数。
答案 2 :(得分:1)
尝试:
if(Pattern.matches("DeskNO[0-9]{2,3}",desk))
[DeskNO0-9]
是一个字符类,因此它只匹配括号内的一个字符,例如D
,e
,9
等,这就是为什么它没有& #39;工作。
DeskNO[0-9]{2,3}
DeskNO
是强制性部分,而[0-9]{2,3}
表示应该跟随两位或三位数。