标签: java regex
因此,在我的代码中,如果用户输入一个4位数字,那么它不会进入while循环,但如果他们没有输入一个4位数字,那么它应该。
这是我到目前为止所得到的,但它并不适合我:
while (num1.matches("^[0-9]{4}"))
从这段代码中我可以看到像#9876'不要进入while循环,而是像' 123'进入它。
N.B。这是作业
答案 0 :(得分:0)
布尔模式= Pattern.matches(“[0-9] {4}”,“你的输入应该是字符串(例如)”1234“); 的System.out.println(图案);
希望这能解决你的问题
答案 1 :(得分:0)
你的正则表达式^[0-9]{4}匹配任何以4位数开头的数字。最后添加$来修复它。
^[0-9]{4}
$
测试:link。
如果您需要匹配除此之外的所有内容,只需取消条件:
while (!num1.matches("^[0-9]{4}$"))
编辑:如果你需要避免使用0前导数字这个正则表达式应该没问题:^[1-9][0-9]{3}$
^[1-9][0-9]{3}$