Java 正则表达式验证\[]

标签 java regex

我的问题是给定字符串仅允许使用 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/

相关文章:

java - 'messy'字符串到int转换java

mysql - 使用 'regexp' 的相同查询在 mysql 中给出不同的结果

regex - 简单的正则表达式,匹配任何带有至少一个连字符的字符串

css - RegExp 搜索并替换 css 中图像的路径

python - 正则表达式:否定整个单词而不是 1 个字符

java - 尝试使用notifyDataSetChanged更新listView的自定义列表适配器但不起作用

java - 在 OSGi 引用注释中动态设置目标属性

javascript - 使用正则表达式提取 svg 路径

java - 如何使用正则表达式从java中的字符串中删除一些html标签

java - 在java中将字符串转换为对象列表