Linux系统正则表达式用法笔记
正则表达式:能用某种模式去匹配一类字符串的公式,它是由一串字符和元字符组成的字符串。
元字符就是阐述字符表达式的内容、转换和描述各种操作信息的字符。
常见的一些基础的正则表达式
1、“.”圆点符号
用来匹配除换行符之外的任意一个字符。比如c.o可以匹配:ceo、cto、coo。注意:一个圆点符号只能表示一个字符。
2、“*”符号
用来匹配前一个字符0次或者任意多次的字符串。比如sa*可以匹配s、sa、saa。常用写法:.*:匹配任意长度不包含换行符的字符串。
3、“\{n,m}\”
也是用来匹配前一个字符,使用“\{n,m}\”可以更加灵活的控制出现的次数,常用的有以下三种形式:
\{n\}\:匹配前面的字符n次。比如:ro{2\}t:可以匹配root
\{n,\}\:匹配前面的字符至少n次以上包含n次。
\{n,m\}\:匹配前面的字符n到m次。
4、“^”符号
尖角号用于匹配开头的字符。比如:^root:匹配的情况改行首字符是root。
5、$符号
和”$“符号相反的功能,用于匹配尾部字符串。
6、”[]“符号
用于匹配方括号内出现的任一字符。比如[ABCD]:表示匹配其中的任何一个。
[a-z]:匹配小写字母,[A-Z]:匹配大写字母,[A-Za-z]:匹配字母。
说明:如果^符号出现在[]里面表示的是取反,不属于的意思。
匹配手机号正则写法:^1[3578][0-9]\{9}\
7、”\“符号
主要是用作转义字符。比如\转义字符是\\.
8、”\<“符号和”\>“
这两个符号主要是用于界定单词的左边界和有边界。
比如:“\<linux”用于匹配linux开头的单词,“linux\>”用于匹配linux结尾的单词。如果需要精确匹配linux可以使用“\<linux\>”。
9、“\d”符号
用于匹配数字,和[0-9]作用一样。
比如:echo 123456 | grep [0-9]
123456
echo 123456 | grep -P '\d' #需要加 -P参数。
123456
10、“\b”符号
用于匹配单词的边界
比如:echo “xiao ming” | grep '\bxiao\b'
输出:xiao ming
echo “xiaoming” | grep '\bxiao\b'
输出:
11、“\B”符号
用于匹配非单词的边界
12、“\w”符号
用于匹配字母数字和下划线,等价于[A-Za-z0-9]
13、“\W”符号
用于匹配非字母非数字和非下划线,等价于[A-Za-z0-9]
14、“\n”符号
匹配一个换行符
15、“\r”符号
匹配一个回车符
16、“\t”符号
匹配一个制表符
17、“\f”符号
匹配一个换页符
18、“\s”符号
匹配任何空白字符
19、“\S”符号
匹配非任何空白字符
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2018-05-04 一位阿里架构师给每个程序员的小建议
2018-05-04 一位阿里架构师给每个程序员的小建议
2018-05-04 一位阿里架构师给每个程序员的小建议