正则表达式 传智播客学习

所属分类: 网络编程 / 正则表达式 阅读数: 2018
收藏 0 赞 0 分享
有了一点点小小成就,五子棋游戏的基本功能已经实现的差不多了,还需要进行部分代码优化,期待明天的到来,因为明天我就可以实现我一个梦想,那就是晚上自己开发的游戏,呵呵!学在其中,乐在其中!下午实在有些腰酸背痛,决定就近去爬山,经过商议决定去百望山森林公园,真的是好久没锻炼了,才两百多米的山爬完回来累的不行,不过也算是感受了一下大自然的风情,站在山顶的感觉真的很不错,看着山下风景,突然感觉自己好渺小,这座城市如此之大,何时何处才是我安身之处?努力,我相信在不远的未来,我相信我的选择。吃过晚饭,看着张孝祥老师的Servlet的视频,对Servlet进行了基础的预习。下面对今天的学习成果和大家分享。
1.什么是正则表达式
一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。个人觉得就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。
2.正则表达式在字符串中的应用
备注:由于基本规则比较简单,而且API中以及网络上都有就不详解了,下面主要总结下在字符串中的应用
正则表达式主要作用于字符串,功能有匹配,搜索,切割,替换
1) 匹配
这里主要通过String类的mathes方法实现,只要将定义好的正则表达式作为参数传入即可。
例:匹配字符串"123456789012345"是否是QQ号码
String qq = "123456789012345";
String qqreg = "[1-9]\\d{4,14}";
System.out.print(qq.matches(qqreg ));
2) 搜索
建立正则规则,将规则封装成对象(Pattern的compile),作用于字符串(Matcher),返回匹配器,利用匹配器作用字符串,找出需要的字符串)
例:取出字符串"ming tian wu zi qi jiu kai fa wan le !"两个字母的单词
String text = "ming tian wu zi qi jiu kai fa wan le !!";
String textreg = "\\b[a-z]{2}\\b";//取出两个字母组成的单词;
Pattern p = Pattern.compile(textreg);//将正则规则封装成对象。
Matcher m = p.matcher(text);//通过正则对象获取匹配器。意为:让规则作用到字符串上。while(m.find())
System.out.println(m.group());
3) 切割
通过split方法实现
例:将字符串
复制代码 代码如下:

String str = "sazzdkqqqqlfooojsz";
String strreg = "(.)\\1+";//"\\.";

String[] arr = str.split(strreg);

for(String s : arr)
{
System.out.println("s="+s);
}

4) 替换
通过字符串的repalceAll方法实现
例:将"10.10.10.10 192.168.105.22 1.1.1.1 2.2.2.2 211.68.43.254"按网段存放
String ip = "10.10.10.10 192.168.105.22 1.1.1.1 2.2.2.2 211.68.43.254";
ip = ip.replaceAll("(\\d+)","00$1");//在每一段的前面补两个0.
ip = ip.replaceAll("0+(\\d{3})","$1"); //只保留每一段的最后三位。
String[] ipArr = ip.split(" ");
TreeSet<String> ts = new TreeSet<String>();//因为ip地址很多,需要使用容器存放,而且需要排序,TreeSet
for(String i : ipArr){ts.add(i);}
for(String i : ts){System.out.println(i.replaceAll("0*(\\d+)","$1"));}

3.常用正则表达式
1) 匹配空白行的正则表达式:\n\s*\r
2) 匹配首尾空白字符的正则表达式:^\s* ¦\s*$
3) 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
4) 匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
5) 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA- Z0-9_]{4,15}$
6) 匹配中国邮政编码:[1-9]\d{5}(?!\d)
7) 匹配身份证:\d{15} ¦\d{18}
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
更多精彩内容其他人还在看

正则表达式验证IPV4地址功能实例分析

这篇文章主要介绍了正则表达式验证IPV4地址功能,结合实例形式分析了IPV4地址验证的原理及具体实现技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

正则表达式教程之前后查找lookaround详解

这篇文章主要介绍了正则表达式教程之前后查找lookaround,结合具体问题分析了向前查找及向后查找功能的实现技巧与注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

正则匹配密码只能是数字和字母组合字符串功能【php与js实现】

这篇文章主要介绍了正则匹配密码只能是数字和字母组合字符串功能,涉及针对字符、数字等正则操作相关技巧,并给出了php与js实现示例,需要的朋友可以参考下
收藏 0 赞 0 分享

正则验证不能含有中文的实现方法【jQuery与java实现】

这篇文章主要介绍了正则验证不能含有中文的实现方法,结合jQuery与java两种实现方法分析了针对中文的正则验证操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

JS 密码强度校验的正则表达式(简单且好用)

最近在做一个通行证的项目,在项目中有这样的需求,注册模块中输入密码需要显示密码强度,今天小编给大家分享JS 密码强度校验的正则表达式,简单好用,需要的朋友参考下
收藏 0 赞 0 分享

iOS 正则表达式判断纯数字及匹配11位手机号码的方法

这篇文章主要介绍了iOS 正则表达式判断纯数字及匹配11位手机号码的方法,判断手机号码是否正确的方法很多,我是用正则表达式来完成匹配的,具体方法,大家参考下本文
收藏 0 赞 0 分享

正则表达式(简单易懂篇)

正则表达式是一种可以用于模式匹配和替换的强大工具。这篇文章主要介绍了正则表达式(简单易懂篇),需要的朋友参考下
收藏 0 赞 0 分享

正则表达式实现匹配连续数字的方法

我这两天刚刚学正则表达式。我觉的正则对连续的字符匹配很简单,但是对连续的一段数字匹配就不是很好。正好最近有朋友问了匹配连续数字的正则,就帮忙写了一下,算是当作温习一下吧。下面这篇文章就主要介绍了正则表达式实现匹配连续数字的方法。
收藏 0 赞 0 分享

正则表达式简介及在C++11中的简单使用教程

正则表达式(regular expression)是计算机科学中的一个概念,又称规则表达式,通常简写为regex、regexp、RE、regexps、regexes、regexen。接下来通过本文给大家介绍正则表达式简介及在C++11中的简单使用教程,一起通过本文学习吧
收藏 0 赞 0 分享

正则表达式实现最小匹配功能的方法

这篇文章主要介绍了正则表达式实现最小匹配功能的方法,结合具体实例形式分析了正则表达式最小匹配功能的原理与实现技巧,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多