Linux-正则表达式

正则表达式就是为了 处理大量字符串 而定义的一套规则和方法;通过定义这些特殊符号的辅助,系统管理员就可以快速过滤,替换或输出需要的字符串。Linux正则表达式以行单位处理

表达式操作的是文件,目录名 属于通配符。表达式操作的是文件内容为正则表达式

基本正则表达式

表达式 描述 实例
\ 转义符 将特殊字符进行转义 忽略其特殊意义
^ 匹配行首 awk中 ^则是匹配字符串的开始
$ 匹配行尾 awk中 $则是 匹配字符串的结尾
. 匹配除换行符\n 之外任意单个字符
[] 匹配包含在[字符]之中任意一个字符 coo[kl]可以匹配cook或cool
[^] 匹配"[^字符串]"之外任意一个字符 123[^45]不可以匹配1234或1235,1236、1237都可
[-] 匹配[]中指定范围内的任意一个字符 要写成递增 [0-9]可以匹配1、2或3等其中任意一个数字
? 匹配之前项的1次或0次 colou?r可以匹配color或者colour,不能匹配colouur
+ 匹配之前项的1次或者多次
* 匹配指定的0次或多次
() 匹配表达式,创建一个用于配置的子串 max(tri)?匹配max或maxtrix () 作用是将一个或者多个字符捆绑在一起,当做一个整体进行处理
匹配之前的项n次,n可以为0的正整数 [0-9]{3}匹配任意一个三位数,可以扩展为[0-9][0-9][0-9]
之前的项至少需要匹配n次
指定之前的项至少匹配n次 最多匹配m次 n<=m [0-9]{2,5}匹配从两位数到五位数之间的任意一个数字
| 交替 匹配 | 两边任意一项
^$ 匹配空行
.* 任意字符

基本正则

^       以什么开头,"^yuchao" 表示匹配以yuchao单词开头的行
$       以什么结尾,"yuchao$",表示匹配以yuchao单词结尾的行
^$      组合符号,表示空行。逻辑解释就是以^开始,以$结尾的行
.       匹配任意且只有一个字符,但是不匹配空行
\       转义字符,让特殊符号失效,如"\."只表示小数点
*       匹配前一个字符(连续出现)0次或1次以上,注意,当重复0次的时候,表示什么也没有,但是会撇皮所有内容
.*      组合符,匹配所有内容
[abc]   匹配[]内包含的任意一个字符a或b或c
[a-z]   匹配[]内包含a-z任意一个字符
[0-9]   匹配[]内包含0-9的任意一个数字
[^abc]  匹配不包含^后的任意字符a或b或c,这里的^表示对[abc]的取反,与在外面的^意义不同

扩展正则

+                匹配前1个字符1次或多次
[:/]+   匹配括号内的 ":" 或 "/" 字符1次或多次
?       匹配前一个字符0次或1次
|       表示或者,即同时过滤多个字符串
()      分组过滤,被括起来的内容表示一个整体,另外()的内容可以被后面的\n引用,n为数字,表示引用第几个括号的内容
\n      引用前面()里的内容,例如(abc)\1 表示匹配abcabc
a{n,m}  匹配前一个字符最少n次,最多m次
a{n,}   匹配前一个字符最少n次
a{,m}   匹配前一个字符最多m次
posted @ 2026-01-28 14:53  Dswtao  阅读(2)  评论(0)    收藏  举报