自由学习正则表达式
嘿嘿,今天家又停电啦,就来写总结晚啦,只得等到现在啦,其实我们今天学习的是什么我已经不记得啦,由于这周给我们讲.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();
好啦,就写到这里吧,感觉还有好多是不太清楚的啦,看起来就是一堆符号和英文字母,可是实现的功能非同小可啦,嘿嘿,这个还是要熟练的练习啦,刚开始接触感觉真的不好玩,一点都不熟悉,还是要做好多的练习的啦,嘿嘿,我会找些习题在做一下练习的啦,一定要熟练的使用的啦。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?