正则表达式主要是用来处理字符串,更加准确的说是处理字符的

基础知识:

?出现0或1次           

+至少出现1次     

* 出现0次或是多次

[]表示出现其中的一个或者多个

{n,m}最少出现n次,最多出现m次

\\d 表示出现的数字  \\D出现的不是数字

\\s表示空白字符,包括空格,换行,制表符,回车等  \\S相反

\\w a-z A-Z 0-9 表示常规字符   \\W相反

\\. 表示出现单个任意字符

单个的知识点并不难,但是组合起来使用就有点复杂了,多多练习。

主要作用

1.字符串匹配

2.字符串的替换操作

3.字符串的抽取


1.字符串的匹配操作

  • IP的匹配操作

192.168.0.27 最简单的正则表达式的匹配    \\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3} 每一位上都可能出现1-3个数字,但是没有限制数字最大为255,超过255则匹配不成功。

\\d 表示数字 ,{n,m}表示最少出现n次,最大出现m次。

稍微改进一点的IP匹配正则表达式为:[1-2]?\\d{0,2}\\.[1-2]?\\d{0,2}\\.[1-2]?\\d{0,2}\\.[1-2]?\\d{0,2}。

还有更好的,自己可以思考完成。

  • 身份证匹配

身份证现在分老式的15位 和新式的18位,18位身份证有可能最后一位是X,所以这个比较简单一些    \ \d{15}||\\d{18}||\\d{17}[Xx]


更好的验证就是提取出出生日期,限制一些年限。从19XX--2XXX年        \\d{6}[12][90]\\d{7} ||\\d{6}[12][90]\\d{10} ||\\d{6}[12][90]\\d{9}[Xx]


  • 电子邮件匹配

/*
*fangjiewd@126.com
*fangjie_wd@game.com
*fangjie.wd@edu.com.cn 
*/


[\\w+\\.-]*\\w+@[\\d+\\.\\w]*\\w+\\.\\w{2,6}


但是在@前必须出现一个或者多个字符\\w+ ,这样之后如果出现像这种情况fangjie.wd.@...则就不能匹配成功


在@之后可以出现字符或者是数字或者是组合,使用 [\\d+\\.\\w]*做限制


  • 数字的匹配


\\d+这种情况只能匹配像 12,33333,88整数情况,但对于小数则匹配不成功。


改进:\\d+\\.?\\d+ 这种情况则就能匹配整数也能匹配小数,因此可能判断一个字符串是否为数字

  • 日期匹配

匹配2014-12-21 这种形式的日期:\\d{4}-\\d{1,2}-\\d{1,2},其他形式的也类似,可以仿照写