java - 为什么java对此正则表达式给出 "Unclosed Group"错误?

标签 java regex

我正在尝试实现此正则表达式来验证电子邮件:

([-!#-'*+/-9=?A-Z^-~]+(\.[-!#-'*+/-9=?A-Z^-~]+)* |"([]!#-[^-~\t]|(\\[\t -~]))+")@([-!#-'*+/-9=?A-Z^-~] +(\.[-!#-'*+/-9=?A-Z^-~]+)*|\[[\t -Z^-~]*])

因此,我添加了一个额外的 \ 来转义正则表达式中现有的 \,并且还转义了 " 并最终得到以下结果:

([-!#-'*+/-9=?A-Z^-~]+(\\.[-!#-'*+/-9=?A-Z^-~]+) *|\"([]!#-[^-~\\t]|(\\\\[\\t -~]))+\")@([-!#-'*+/-9 =?A-Z^-~]+(\\.[-!#-'*+/-9=?A-Z^-~]+)*|\\[[\\t -Z^-~]*])

现在我收到错误:

索引 145 附近的未封闭组

有什么想法吗?

最佳答案

您错过了两个字符的转义:“[”和“]”。试试这个:

"([-!#-'*+/-9=?A-Z^-~]+(\\.[-!#-'*+/-9=?A-Z^-~]+)*|\"(\\[\\]!#-[^-~ \\t]|(\\\\[\\t -~]))+\")@([-!#-'*+/-9=?A-Z^-~]+(\\.[-!#-'*+/-9=?A-Z^-~]+)*|\\[[\\t -Z^-~]*])"

关于java - 为什么java对此正则表达式给出 "Unclosed Group"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30041167/

相关文章:

java - 字符到整数的转换

java - python 与 java 在 Web 服务开发上的区别?

asp.net - SWIFT 代码的正确正则表达式是什么?

php - 正则表达式:用不在单引号中的逗号分隔,允许转义引号

python - 在 Python 中从(字符串)元组写入 csv

regex - 如何从多语言文本中删除单词?

javascript - 有没有一种简单的方法来匹配字节数组中的字节数组?

java - 使用 Google 应用引擎将字节数组转换为 Java 中的图像

java - 如何在 JOptionPane.showMessageDialog 上关闭?

java - 制作一个 jar 文件