在正则表达式中Java转义字符的含义

3
我有以下正则表达式来匹配电子邮件地址。
[-0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+\.[a-zA-Z]{2,4}

我尝试转义以下字符,但仍然遇到了Java编译错误。请问有人能帮我转义上面的正则表达式吗?

String pattern = "\\[-0-9a-zA-Z\\.\\+_\\]\\+@\\[-0-9a-zA-Z\\.\\+_\\]+\\\.\\[a-zA-Z\\]\\{2,4\\}";
1个回答

6
转义后的正则表达式为:
"[-0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+\\.[a-zA-Z]{2,4}"

重点是,在方括号字符类内部,像 .+ 这样的字符默认被视为字面量,因此根本不需要转义。唯一需要从 Java 转义的是字面量点前面的反斜杠。 - Ian Roberts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接