如何创建一个Regex表达式,使其接受除4位数字之外的所有内容?

时间:2017-11-03 11:20:52

标签: java regex

因此,在我的代码中,如果用户输入一个4位数字,那么它不会进入while循环,但如果他们没有输入一个4位数字,那么它应该。

这是我到目前为止所得到的,但它并不适合我:

while (num1.matches("^[0-9]{4}"))

从这段代码中我可以看到像#9876'不要进入while循环,而是像' 123'进入它。

N.B。这是作业

2 个答案:

答案 0 :(得分:0)

布尔模式= Pattern.matches(“[0-9] {4}”,“你的输入应该是字符串(例如)”1234“); 的System.out.println(图案);

希望这能解决你的问题

答案 1 :(得分:0)

你的正则表达式^[0-9]{4}匹配任何以4位数开头的数字。最后添加$来修复它。

测试:link

如果您需要匹配除此之外的所有内容,只需取消条件:

while (!num1.matches("^[0-9]{4}$"))

编辑:如果你需要避免使用0前导数字这个正则表达式应该没问题:^[1-9][0-9]{3}$

测试:link