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

Joe*_*Joe 7 java regex

public static final String REGEX_ADDRESS_ZIP = "^[0-9\\ -.]+$";
Run Code Online (Sandbox Code Playgroud)

用于验证邮政编码的上述正则表达式似乎允许感叹号(!),即使我没有在这里允许它.不确定是什么错误?我是否需要更改正则表达式模式

Ama*_*osh 10

连字符-字符类中的元字符,除非它是第一个或最后一个字符.将其更改为:

^[0-9\\ .-]+$
Run Code Online (Sandbox Code Playgroud)

[0-9\\ -.]是指从任何字符09(所有的数字),反斜线\到周期(ASCII 46),并从空间中的任何字符(ASCII 32) ,其转化为:

 !"#$%&'()*+,-.
Run Code Online (Sandbox Code Playgroud)