我的问题是给定字符串仅允许使用 a-z、A-Z、0-9
、点、破折号、下划线和 []。
这是我的代码,但到目前为止还没有工作。
[a-zA-Z0-9._-]*
这个可以很好地验证 a-z、A-Z、0-9
点、破折号和下划线,但是当涉及到 add 和 [] 时,我收到错误非法字符。
[a-zA-Z0-9._-\\[]]
*
显然 [] 破坏了正则表达式。
有什么建议如何处理这个问题吗?
String REGEX = "[a-zA-Z0-9._-\\[]]*";
String username = "dsfsdf_12";
Pattern pattern = Pattern.compile(REGEX);
Matcher matcher = pattern.matcher(username);
if (matcher.matches()) {
System.out.println("matched");
} else {
System.out.println("NOT matched");
}
最佳答案
您必须转义两个 [],如下所示:
"[a-zA-Z0-9._-\\[\\]]*"
关于Java 正则表达式验证\[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7847159/