我将这个用于JavaScript中用于验证电子邮件地址的大正则表达式。
/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
当我尝试在Java中使用它们时,我会遇到语法错误。
索引附近的未闭合字符类154 / ^(([^&lt;&gt;()[] \。,;:\ s @ \&#34;] +(。[^&lt;&gt;()[] \;:\ S @ \&#34;] +)*)|(\&#34 + \&#34))@(([0-9] {1,3} [。 0-9] {1,3} [0-9] {1,3} [0-9] {1,3}])|。。(([A-ZA-Z-0-9] +) + [a-zA-Z] {2,}))$ / ^
我正在使用http://www.regexplanet.com/来测试正则表达式。
有没有办法转换或转义字符或类似的东西?谢谢!
答案 0 :(得分:1)
我翻了一些字符,结果就是这样:
/^
(
(
[^<>()\[\]\\.,;:\s@\"]+
(\.[^<>()\[\]\\.,;:\s@\"]+)*
)
|
(
\".+\"
)
)
@
(
(\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])
|
(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,})
)
$/
似乎问题是有一些[
没有转义。
无论如何,我鼓励你看到这个问题:What-is-the-best-java-email-address-validation-method
答案 1 :(得分:1)
这是JS正则表达式作为Java字符串文字:
"(([^<>()\\[\\].,;:\\s@\"]+(\\.[^<>()\\[\\].,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}))"
锚点(^$
)已被删除,因为在调用matches()
时不需要它们。
\
以外的所有\"
都加倍了。
[
)内的 []
需要转义,因此添加了转义(\\[
)。
.
)内的 []
不需要转义,因此删除了转义。
-
)内的 []
如果放在最后,则不需要转义,所以移动到结束。
答案 2 :(得分:0)
我与所有最终正则表达式Java email address regex validator
分享