自由学习正则表达式
嘿嘿,今天家又停电啦,就来写总结晚啦,只得等到现在啦,其实我们今天学习的是什么我已经不记得啦,由于这周给我们讲.Net的老师飞去给其他班级上课,于是我们就听课啦,而公司为了搪塞我们,给我们安排啦一个Oracle数据库老师,本以为可以学到这个是我们的荣幸啦,可是意想不到的是坐在第一排的我们都难以听到老师是什么,这个是给老师提建议啦,可是改变不了啊,这样的一天,课堂气氛甚是安静啊,我们100度的学习热度,最后一点点的下降到了零下,其实今天仅仅带我们安装Oracle数据库,可想而知,我们下载完文件,也没有安装成功,这样的一天就是这样结束的,我们学生痛苦啊,我们在想想公司反映还是自己学习吧,但是想啦一下,老师也是无辜的吧,不想打击她啦,于是我们选择默默地上课吧,默默祈祷这周安静的快点成为记忆拉。
不论因为什么原因,学习的每一天是不能落下的,于是自己看啦一下正则表达式,其实正则表达式是用来进行文本处理的技术,是语言无关的,在几乎所有语言中都有实现。javascript中还会用到,一个正则表达式就是由普通字符以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。就像通配符“*.jpg”、“%ab%”,它是对字符串进行匹配的特殊字符串,正则表达式能做什么那?其实正则表达式就是对字符串的处理,可以用来对字符串的匹配、字符串的提取、字符串的替换等;我们在项目中像做到采集器、敏感词过滤、URLRewite、Validator也可以使用正则表达式。下面就简单的总结一下吧。
一.元字符
匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;} 匹配空行的正则表达式:\n[\s| ]*\r 匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/ 匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
//bool r = Regex.IsMatch("bug", "^b.g$"); //Console.WriteLine(r); //练习1:判断是否是合法的邮政编码(6位数字) //bool r = Regex.IsMatch("100010", @"^\d{6}$"); //Console.WriteLine(r); //判断一个字符串是不是身份证号码,即是否是15或18位数字。 //string s = "123456789012345678"; //bool r = Regex.IsMatch(s, @"^\d{15}$|^\d{17}[0-9A-Za-z]$"); //Console.WriteLine(r); //判断字符串是否为正确的国内电话号码,不考虑分机。 //bool r = Regex.IsMatch("010-12345679544",@"^(\d{3,4}\-?\d{7,8}|\d{5})$"); //Console.WriteLine(r); //判断一个字符串是否是合法的Email地址。一个Email地址的特征就是以一个字符序列开始,后边跟着“@”符号,后边又是一个字符序列,后边跟着符号“.”,最后是字符序列 //bool r = Regex.IsMatch("123@163.com", @"^\w+@\w+\.\w+(\.\w+)?$"); //Console.WriteLine(r); Console.Read();
好啦,就写到这里吧,感觉还有好多是不太清楚的啦,看起来就是一堆符号和英文字母,可是实现的功能非同小可啦,嘿嘿,这个还是要熟练的练习啦,刚开始接触感觉真的不好玩,一点都不熟悉,还是要做好多的练习的啦,嘿嘿,我会找些习题在做一下练习的啦,一定要熟练的使用的啦。