Java正则表达式验证\ []

bra*_*ebg 0 java regex

我的问题是只允许a-z, A-Z, 0-9给定字符串,点,短划线和下划线以及[].

这是我的代码,但到目前为止还没有.

[a-zA-Z0-9._-]*这个可用于验证a-z, A-Z, 0-9点,破折号和下划线,但是当涉及添加和[]我得到错误非法字符. [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");
}
Run Code Online (Sandbox Code Playgroud)

thu*_*eys 5

你必须逃避[],如下所示:

    "[a-zA-Z0-9._-\\[\\]]*"
Run Code Online (Sandbox Code Playgroud)