1.什么是正则表达式?
正则表达式就是为了处理大量的文本及字符串而定义的一套规则和方法
2.为什么使用正则?
让工作简单、高效,
正则表达式高级工具:三剑客都支持
3.使用正则表达式要注意的事项
Linux中的正则表达式,最常应用正则表达式的命令是grep(egrep、grep -E扩展正则),sed,awk
4.正则表达式的分类
基本正则表达式(BRE)
高级功能:扩展正则表达式(ERE)
5.怎么区分通配符和正则表达式
1.不需要思考的判断方法:在三剑客awk,sed,grep,egrep都是正则,其他都是通配符
2.通配符和正则表达式都有 * ,?,[] 但是通配符的这些符号都能自身代表任意字符,而正则表达式的这些符号只能代表这些符号前面的字符
6.基本正则表达式
匹配字符
匹配次数
位置锚定
符号 | 作用 |
^ | "^abc",匹配以abc开头的行 |
$ | "abc$",匹配以abc结尾的行 |
^$ | 组合符,表示为空 |
. | 匹配任意一个字符,不能匹配空行 |
\ | 转义字符,让特殊字符现出原形还原本意,列如\.代表小数点 |
* | 匹配前一个字符0次或1次以上,重复0次代表空,即匹配所有内容 |
.* | 组合符,匹配所有内容 |
^.* | 组合符匹配任意多个字符开头的内容 |
.*$ | 组合符,匹配任意多个字符结尾的内容 |
[a,b,c] | 匹配[]里的任意一个字符,a、b、c可以写成[a-c] [!a-c] #取反表示除了a,b,c的任意字符 |
7.扩展正则表达式
字符 | 作用 |
+ | 匹配前一个字符1次或多次 |
[:/]+ | 匹配括号内的:或者/字符1次或多次 |
? | 匹配前一个字符0次或1次 |
| | 表示或者,同时过滤多个字符 |
() | 分组过滤,被括起来的内容表示一个整体 |
a{n,m} | 匹配前一个字符最少n次,最多m次 |
a{n,} | 匹配前一个字符最少n次 |
a{n} | 匹配前一个字符正好n次 |
a{,m} | 匹配前一个字符最多m次 |
附加:grep命令需要使用 -E即可支持正则表达式,egrep不推荐使用。
grep不加参数,需要在特殊字符前加“\”反斜杠,识别为正则。