正则表达式的组成规则
在java中,正则表达式的编译是类
java.util.regex.Pattern
正则表达式的构造摘要
1.字符x
包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号的普通字符。
比如之前的例子
可以将[1-9][0-9]{4,12}改成
1[0-9]{4,12}或者a[0-9]{4,12}
此时就表示以1开始或者以a开始的字符,就表示一个任意的普通字符。
2. 反斜线字符
表示一个反斜线,更改下之前的代码
3、[abc] a,b或者c(简单类),任选一个,只能在abc中
4、[^abc] 任何字符,除了a,b,c(否定),不是abc的任意字符
5.[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
6. d 数字:[0-9]
D 非数字: [^0-9]相对于d是取反,不是数字的就可以
7. w 单词字符:[a-zA-Z_0-9]匹配字母或数字或下划线或汉字,W是取反:[^w]
上面这些有助于我们理解正则表达式,建立概念,实际上正则有很多构造,需要可以百度搜索,现在我们多做些练习,补充理解学习。
练习:判断手机号是否满足需求
准备手机号例子:
18372345676
18372345673
18372345672
18372345671
13469830000
15926943333
18727244444
13901657081
规则:
1. 首位是1
2. 第二位是[358]
3. 后续数字 表示数字:[0-9]
X{n} X,表示恰好 n 次,后续位数为9位,所以X是[0-9],n是9,结合起来是[0-9]{9}
那么正则就是1[358][0-9]{9}
编写代码
运行结果
练习:邮箱判断
下面邮箱例子(实际邮箱正则很复杂):
1233213123@qq.com
zoushdiasd@163.com
heis_321@126.com
guaojpod@sina.com.cn
daioyasodi@tencent.cn
规则:
1.以@符合分为三个部分
2. @以前的部分:w{8,10}
3.@
此时的正则是: w{8,10}@
4. @后面的部分可以依据.(点)进行划分
5. .以前的部分[a-z1-9]{2,7}
6. .本身表示任何字符,所以需要转义.
此时的正则是: w{8,10}@[a-z1-9]{2,7}.
7. .后面的部分可以暂时表示宽泛一些[a-z]{2,3}
此时的正则是: w{8,10}@[a-z1-9]{2,7}.[a-z]{2,3}
8. 多个com和cn可以将点及后面的部分一起,看做一个整体(.[a-z]{2,3}){1,2}
此时的正则是:
w{8,10}@[a-z1-9]{2,7}(.[a-z]{2,3}){1,2}
编写代码
结果