当前位置: 首页 > 图文教程 > 网络编程 > 正则表达式 > 正则表达式 传智播客学习

正则表达式
正则在FireFox和IE下使用test的不同
正确使用带有"g"标记的javascript正则表达式
正则表达式 学习资料整理
javascript 正则表达式用法 小结
正则匹配的test函数
JavaScript 正则表达式 验证整数、小数、实数、有效位小数最简单
检测八位数字是否为有效日期的正则
editplus EmEditor和searchandreplace正则表达式
正则应用之 日期正则表达式
正则表达式 学习参考 推荐入门者看
正则基础之 \b 单词边界
正则基础之 小数点
正则 捕获组(capture group)
Dreamweaver 正则替换(返回调用值)
JavaScript 表单验证正则表达式大全[推荐]
JavaScript 使用正则表达式进行表单验证的示例代码
获取网址路径的正则
去除段首段尾的 和全角的空格的正则
正则表达式匹配任意字符(包括换行符)的写法
EditPlus 正则表达式替换字符串详解

正则表达式 传智播客学习


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 68 ::
收藏到网摘: n/a

今天是预热班结束后的第二天,按照原定计划,今天复习了正则表达式以及GUI方面的内容 有了一点点小小成就,五子棋游戏的基本功能已经实现的差不多了,还需要进行部分代码优化,期待明天的到来,因为明天我就可以实现我一个梦想,那就是晚上自己开发的游戏,呵呵!学在其中,乐在其中!下午实在有些腰酸背痛,决定就近去爬山,经过商议决定去百望山森林公园,真的是好久没锻炼了,才两百多米的山爬完回来累的不行,不过也算是感受了一下大自然的风情,站在山顶的感觉真的很不错,看着山下风景,突然感觉自己好渺小,这座城市如此之大,何时何处才是我安身之处?努力,我相信在不远的未来,我相信我的选择。吃过晚饭,看着张孝祥老师的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]