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次
浙公网安备 33010602011771号