正则表达式匹配邮箱
2015-12-09 23:52
225 查看
本文首写于个人有道云笔记:
http://note.youdao.com/share/?id=6b2b0063b7b9963959fca3750b931baa&type=note
java.util.regex.PatternSyntaxException: Illegal character range near index 24
[a-zA-Z0-9]+[a-zA-Z0-9_-.]*@([a-zA-Z0-9_-]+.)+[a-zA-Z_-]+
^
正则表达式报错,说明有未转义的字符。
括号内中的字符类,在“-”左右两边有字符时表示一个字符到另一个字符之间的字符。
而且必须是左边字符的值小于右边字符的值。
. 若表示点号本身需要转义(反斜杠\)正左反右
在普通的正则表达式中,15个具有特殊意义的元字符需要进行转义:
( [ { } ] ) \ ^ - $ | ? * + .
而在字符类中有点特殊,需要转义的有:
[ ] ^ - \
其中“-”放在字符类的两边的话,即放在左方括号右者右方括号的边上,也可以不用转义。
或者写成下面这样,即把“-”放到两边去,就不要转义了。
实例:
正则表达式匹配邮箱
// DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母。
// 现在各级域名均可以包含中文。
// 域名可以只有一位,如亚马逊 http://www.Z.cn、http://www.4.cn,顶级域名貌似至少两位,这里暂不限制。
// 标号中除连字符(-)外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的域名写在最右边。
// 由多个标号组成的完整域名总共不超过255个字符。
// 创新工场域名:innovation-works.com,带-熟称扁担域名,貌似也有-开头的域名。
// 网易企业邮:帐号只能以字母或数字开头,可包含字母,数字,下划线(_),减号(-)和点(.),实际验证最长20位。0@cx.cf或1.@cx.cf。
// 网易邮:邮箱名6-18位;新浪字母邮、搜狐:邮箱名4-16位
"[a-zA-Z0-9][a-zA-Z0-9_\\-\\.]{0,19}@(?:[a-zA-Z0-9\\-]+\\.)+[a-zA-Z]+"
如:xf1-d@-1-.com.cn
(
? : exp ):匹配exp,不捕获匹配的文本到自动命名的组,也不给此分组分配组号,也就不会让内存等着你再次访问。
匹配中文邮箱:(默认中文、英文字母、数字开头,不包含下划线,可包含中文,英文字母,数字,下划线(_),减号(-)和点(.))
String regex = "[\u4e00-\u9fa5a-zA-Z0-9][\u4e00-\u9fa5_a-zA-Z0-9\\-\\.]{0,19}@(?:[\u4e00-\u9fa5a-zA-Z0-9\\-]+\\.)+[\u4e00-\u9fa5a-zA-Z]+";
匹配结果:sd速度-x.f1-d@-1-.com.cn
中文、下划线、英文字母、数字:[\u4e00-\u9fa5_a-zA-Z0-9],
不要用 \w,他匹配的是包括下划线的任何单词字符。类似但不等价于“[
A-Za-z0-9_ ]”,这里的"单词"字符使用Unicode字符集,包括俄文等单词如а。
![](https://img-blog.csdn.net/20151209235022550?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
http://note.youdao.com/share/?id=6b2b0063b7b9963959fca3750b931baa&type=note
java.util.regex.PatternSyntaxException: Illegal character range near index 24
[a-zA-Z0-9]+[a-zA-Z0-9_-.]*@([a-zA-Z0-9_-]+.)+[a-zA-Z_-]+
^
正则表达式报错,说明有未转义的字符。
括号内中的字符类,在“-”左右两边有字符时表示一个字符到另一个字符之间的字符。
而且必须是左边字符的值小于右边字符的值。
. 若表示点号本身需要转义(反斜杠\)正左反右
在普通的正则表达式中,15个具有特殊意义的元字符需要进行转义:
( [ { } ] ) \ ^ - $ | ? * + .
而在字符类中有点特殊,需要转义的有:
[ ] ^ - \
其中“-”放在字符类的两边的话,即放在左方括号右者右方括号的边上,也可以不用转义。
1 | ( 0 |([ 1 - 9 ][ 0 - 9 ]*)[+\\-*/])+( 0 |[ 1 - 9 ][ 0 - 9 ]*) |
1 | ( 0 |([ 1 - 9 ][ 0 - 9 ]*)[-+*/])+( 0 |[ 1 - 9 ][ 0 - 9 ]*) |
正则表达式匹配邮箱
// DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母。
// 现在各级域名均可以包含中文。
// 域名可以只有一位,如亚马逊 http://www.Z.cn、http://www.4.cn,顶级域名貌似至少两位,这里暂不限制。
// 标号中除连字符(-)外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的域名写在最右边。
// 由多个标号组成的完整域名总共不超过255个字符。
// 创新工场域名:innovation-works.com,带-熟称扁担域名,貌似也有-开头的域名。
// 网易企业邮:帐号只能以字母或数字开头,可包含字母,数字,下划线(_),减号(-)和点(.),实际验证最长20位。0@cx.cf或1.@cx.cf。
// 网易邮:邮箱名6-18位;新浪字母邮、搜狐:邮箱名4-16位
// 匹配非中文邮箱 public void regexTest() { String str = "sd速度-1-@-1-.com.cn!但是!"; String regex = "[a-zA-Z0-9][a-zA-Z0-9_\\-\\.]{0,19}@(?:[a-zA-Z0-9\\-]+\\.)+[a-zA-Z]+"; Matcher matcher = Pattern.compile(regex).matcher(str); while (matcher.find()) { regex = matcher.group(); System.out.println("test:" + regex); } } |
如:xf1-d@-1-.com.cn
(
? : exp ):匹配exp,不捕获匹配的文本到自动命名的组,也不给此分组分配组号,也就不会让内存等着你再次访问。
匹配中文邮箱:(默认中文、英文字母、数字开头,不包含下划线,可包含中文,英文字母,数字,下划线(_),减号(-)和点(.))
String regex = "[\u4e00-\u9fa5a-zA-Z0-9][\u4e00-\u9fa5_a-zA-Z0-9\\-\\.]{0,19}@(?:[\u4e00-\u9fa5a-zA-Z0-9\\-]+\\.)+[\u4e00-\u9fa5a-zA-Z]+";
匹配结果:sd速度-x.f1-d@-1-.com.cn
中文、下划线、英文字母、数字:[\u4e00-\u9fa5_a-zA-Z0-9],
不要用 \w,他匹配的是包括下划线的任何单词字符。类似但不等价于“[
A-Za-z0-9_ ]”,这里的"单词"字符使用Unicode字符集,包括俄文等单词如а。
xf1-d@-1-.com.cn | |||||||||
[a-zA-Z0-9] | [a-zA-Z0-9_\\-.] | {1,19} | @ | ( | [a-zA-Z0-9\\-] | + | \\. | )+ | [a-zA-Z]+ |
字母数字开头 | 字母,数字,下划线(_),减号(-)和点(.); | 1 | 域名:字母、数字、连字符 | 1 | 域名间的点,需转义 | 1 | 域名后缀 | ||
- 需转义》 \- 》转义符也需转义 \\- | 到19次 | 或 | 或 | ||||||
或 * | 更多次 | 更多次 | |||||||
x | f1-d | @ | -1- | . | cn | ||||
-1-.com. |
欢迎个人转载,但须在文章页面明显位置给出原文连接; 未经作者同意必须保留此段声明、不得随意修改原文、不得用于商业用途,否则保留追究法律责任的权利。 【 CSDN 】:csdn.zxiaofan.com 【GitHub】:github.zxiaofan.com 如有任何问题,欢迎留言。祝君好运! Life is all about choices! 将来的你一定会感激现在拼命的自己!
相关文章推荐
- (解题报告)HDU2005---第几天
- linux 进程控制总结笔记
- linux之exec命令详解
- wampserver 打造https 站点(下)
- matlab凸优化工具箱——cvx简介
- Java并发编程:synchronized
- spring从简到繁之一
- 被骗几十万总结出来的Ddos攻击防护经验!
- Hadoop源码分析之读文件时NameNode和DataNode的处理过程
- iOS开发——定制圆形头像与照相机图库的使用
- 自动化测试_学习笔记
- wpf 基本控件使用介绍
- Windows消息机制概述
- Android 中JS和Java交互
- Activity的生命周期
- hdu 1244 Max Sum Plus Plus Plus(DP)
- WinAPI: GetVolumeInformation - 读取文件系统信息
- Zookeeper,Hbase 伪分布,集群搭建
- android动态加载布局文件示例
- ThreadLocal详解