Linux正则表达式

什么是正则表达式

它是由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意义,而是用于表示控制或通配的功能

分两类:

基本正则表达式 BRE

扩展正则表达式 ERE

正则表达式的意义

处理大量的字符串

处理文本

通过特使符号的辅助,可以让linux管理员快速过滤 替换 处理所需要的字符串 文本,让工作高效

通常Linux运维工作,都是面临大量带有字符串的内容,如

  • 配置文件

  • 程序代码

  • 命令输出结果

  • 日志文件

且此类字符串内容,我们常会有特定的需要,查找出符合工作需要的特定的字符串,因此正则表达式就出现了

  • 正则表达式是一套规则和方法

  • 正则工作时以单位进行,一次处理一行

  • 正则表达式化繁为简,提高工作效率

  • linux仅受三剑客 (ed、awk、grep)支持,其他命令无法使用

Linux下普通命令无法使用正则表达式的,只能使用三剑客。

通配符是大部分普通命令都支持的,用于查找文件或目录,而正则表达式是通过三剑客命令在文件(数据流)中过滤内容的

Linux三剑客
  • grep:文本过滤工具

  • sed:文本编辑工具

  • awk:文本报告生成器

正则表达式的分类

linux三剑客主要分为两类

基本正则表达式 BRE集合

匹配字符

匹配次数

位置锚定

符号作用
^用于模式的最左侧,如^oldbay,匹配以oldboy单词开头的行
| 用于模式的最右侧,如olday,表示以olday单词结尾的行
^$组合符 表示空行
.匹配任意一个且只有一个字符,不能匹配空行
\转义字符 让特殊含义的字符,还原本意,例如.代表小数点
*匹配前一个字符(连续出现)0次或1次以上,重复0次代表空,及匹配所有内容
.*组合符,匹配所有内容
^.*组合符,匹配任意多个字符开头的内容
.*$组合符,匹配以任意多个字符结尾的内容
[abc]匹配0集合内的任意一个字符,a或b或c,可以写[a-c]
[^abc]匹配除了^ 后面的任意字符,a或b或c,^表示对[abc]的取反

扩展正则表达式

grep -E 才能使用

字符作用
+匹配前一个字符1次或多次
[:/]+匹配括号内的:或/字符一次或多次
?匹配前一个字符0次或一次
|表示或者 同时过滤多个字符
()分组过滤,被括起来的内容表示一个整体
a{n,m}匹配前一个字符最少匹配n次,最多m次
a{n,}匹配前一个字符最少匹配n次
a{n}匹配前一个字符正好n次
a{,m}匹配前一个字符最多m次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值