shell编程——正则表达式
正则表达式
- 用一个“字符串公式”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征
shell与正则表达式
以下命令支持正则表达式
locate
sed
find
grep
vim
awk
正则表达式字符类型
- 元字符
- 定位符
- 匹配符
- 限定符
- POSIX字符
元字符符号
-
定位符
定位符 说明 ^ 锚定开头^a以a开头,默认锚定一个字符 $ 锚定结尾a$ 以a结尾 默认锚定一个字符 \b 锚定单词的开头或者结尾 窍门: 同时使用^ 和 $ 是精确匹配
-
匹配符
匹配符 说明 . 匹配除回车以外的任意一个字符 () 字符串分组 [] 定义字符类,匹配括号中的一个字符(可以指定范围,例如[a-z]) [^] 表示否定括号中出现字符类中的字符,取反 \ 转义字符 | 或 \d 匹配一个0-9数字 \D 匹配一个非数字字符 \w 匹配字母或数字下划线 \s 匹配任意的空白符 -
限定符
限定符 说明 * 某个字符之后加型号表示该字符不出现或出现多次 a(ab) ? 与星号相似,表示不出现或出现一次 + 与星号相似,表示其前面的字符出现一次或多次,但必须出现一次 某个字符之后出现,表示该字符最少n次,最多m次 正好出现了m次
POSIX符号
特殊字符 | 说明 |
---|---|
[:alnum:] | 匹配任意字母字符0-9 a-z A-Z |
[:alpha:] | 匹配任意字母,大写或小写 |
[:digic:] | 数字0-9 |
[:graph:] | 非空字符(非空格控制字符) |
[:lower:] | 小写字符A-Z |
[:upper:] | 大写字符A-Z |
[:cntrl:] | 控制字符 |
[:print:] | 非空字符(包括字符) |
[:punct:] | 标点符号 |
[:blank:] | 空格和TAB字符 |
[:xdigit:] | 16进制数字 |
[:space:] | 所有空白字符(新行、空格、制表符) |
Q
-
IP匹配
egrep "^((25[0-5]|2[0-4][[:digit:]]|1?[[:digit:]][[:digit:]]?)\.){3}(25[0-5]|2[0-4][[:digit:]]|1?[[:digit:]][[:digit:]]?)$" ipList
email匹配
egrep "^((([[:alnum:]]|[-]|[_])+)@)((([[:alnum:]]|[-]|[_])+)\.)+([[:alpha:]]+)$" emailList
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)