Java 如何通过正则表达式防止感叹

Java 如何通过正则表达式防止感叹,java,regex,Java,Regex,上面用于验证邮政编码的正则表达式似乎允许感叹号(!),尽管我在这里不允许它。不确定是什么错误?我需要更改正则表达式模式吗?连字符-在内部是元字符,除非它是第一个或最后一个字符。将其更改为: public static final String REGEX_ADDRESS_ZIP = "^[0-9\\ -.]+$"; [0-9\\-.]是指从0到9(所有数字)、反斜杠\以及从空格(ASCII 32)到句点(ASCII 46)的任何字符: 在我看来,这个正则表达式只接受破折号和圆点。你能举个例子吗

上面用于验证邮政编码的正则表达式似乎允许感叹号(!),尽管我在这里不允许它。不确定是什么错误?我需要更改正则表达式模式吗?

连字符
-
在内部是元字符,除非它是第一个或最后一个字符。将其更改为:

public static final String REGEX_ADDRESS_ZIP = "^[0-9\\ -.]+$";
[0-9\\-.]
是指从
0
9
(所有数字)、反斜杠
\
以及从空格(ASCII 32)到句点(ASCII 46)的任何字符:


在我看来,这个正则表达式只接受破折号和圆点。你能举个例子吗?你不必逃离空间<代码>[0-9.-]很好。啊,是的,我们都做过这个:-)
^[0-9\\ .-]+$
 !"#$%&'()*+,-.