我的第一个正则表达式
虽然闻名已久,但是,终究是机缘未到,每次都是浅尝辄止,甚至没自己写过一行正则表达式。今天终于写了自己第一个正则表达式,纪念一下:
\s/udisk/[1-9]*
上面这以pattern主要是为了,在某一长串中,找到字符串 " /udkisk/xx",其中xx表示一串数字,对这串数的长度没有要求。
对上面的各个段做一下解释:
1) "\s",表示一个空白字符,匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。通常作为字符串的开始符。这样的字符,在正则表达式中叫做MetaCharacter,中文翻译做元字符。表示“一个字符”的元字符还有:
- “\b”,匹配英文中一个单词的开始或结尾,可以是空格、标点符号、换行。但是,事实上,它只是匹配了一个位置,只是用来发现单词的开始或结尾。
- “.”,可以匹配换行符外的任意字符。
- “\d”,匹配一个数字。等价于用集合表示的[0-9]。
- “\w”,匹配一个字母,或数字,或下划线,或汉字。
- “范围[1-9]”或“集合[fsefsfd]”,事实上这两个对应的英文单词都可以是set,这里表示匹配范围内,或者集合内的某一字符。
2)所以,用上面的元字符把我的第一个正则表达式拆开,就是“\s”+"/udisk/"+"[1-9]*”,所以我们要匹配的串是 “ 空格”+“/udisk/”+“数字”+“数字”+。。。+“数字”。这里的 “*” 是指前一个元字符会出现0次或无限多次。
3)上面的 “*” 叫做限定符,即限定出现次数的。正则表达式中的限定符包括:
- “*”,出现0次或者无限多次。
- “+”,出现1次或者无限多次。最少1次。
- “?”,出现0次或1次。
- “{n}”,出现n次。
- “{n,}”, 出现n次或更多次。
- “{n,m}”,最少出现n次,最多出现m次。
4)我们也可以把一串元字符和限定符(或其他符号)组成的表达式用括号括起来,然后把这一段表达式当做一个元字符对待,这段叫做一个组。比如,(\w+\.){2}\w+ ,表示 “ xxx.xxx.xxx ” ,其中xxx为任意数量个字母。
这只是正则表达式的一部分入门知识,所以。。。还要加油。另外,bash中使用正则表达式的三把利器,也要尝试掌握:grep,sed,awk。
无论在哪里做什么,只要坚持服务、创新、创造价值,其他的东西自然都会来的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!