shell 之 正则表达式 理解大全

正则表达式是什么

在这里插入图片描述
正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式
就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

好文链接:

https://www.cnblogs.com/dreamingbaobei/p/9717234.html

为什么要学习正则表达式

在企业中,我们每天做的linux运维工作中,时刻都会面对大量带有字符串的文本配置、程序、命令输出及日志文件等,而我们经常会有迫切的需要从大量的字符串内容中查找符合工作需要的特定字符串,这就要靠正则表达式,因此,可以说正则表达式就是为过滤这样字符串的需求而生的。

正则表达式处理数据过程

在这里插入图片描述实际上正则表达式就是完成过滤工作,将不满足正则表达式定义的字符、数据拒绝掉。

正则表达式就像是一个漏斗。

基本的正则表达式元字符集合及其意义

shell赋予了它们超越字面的含义

* 重复前一个字符0次或多次

在这里插入图片描述在这里插入图片描述

   代表且只能代表任意一个字符(不包括空行)
*   重复前面任意0个或多个字符
.*   匹配所有字符。(包括空行)
sed -ri 's#(.*)#\1#g' bqh.txt
把前面正则匹配的括号内的结果,在后面用\1取出来操作。
^   表示以什么开头,^bqh 以bqh开头
$   是以什么结尾
^$   表示空行。
\ 例\.   就只代表点本身,转义符号,让有着特殊身份移动的字符,脱掉马甲,还原原型\$
^.*   以任意多个字符开头。
.*$   以任意多个字符结尾。
(.*)   从第一字符匹配,到空格停止,
[abc]   匹配字符集合内的任意一个字符【a-zA-Z】
[^abc]   匹配不包括^后的任意字符的内容;中括号里的^为取反,注意和以...开头区别。
a\{n,m\}   重复n到m次,前一个重复的字符。如果有用egrep/sed -r 可以去掉斜线。
\{n,\}   重复至少n次,前一个重复的字符。如果有用egrep/sed -r 可以去掉斜线。
\{n\}   重复n次,前一个重复的字符。如果有用egrep/sed -r 可以去掉斜线。
①^word   搜索以word开头的;vi ^ 一行的开够
②word$   搜索以word结尾的;vi $ 一行的开头
③^$   表示空行。

不同元字符的含义

"*"符号

在这里插入图片描述

"."符号

有点像通配里的“?"
在这里插入图片描述

"^"符号

在这里插入图片描述

"$"符号

在这里插入图片描述

"[]"符号

linux系统对大小写是敏感的
在这里插入图片描述

[^b-d] 表示匹配不在b-d范围内的所有字符,此时的^表示取反
[A-Za-z]* 表示匹配任意英文单词

"\"字符

在这里插入图片描述

"\<\>"符号

在这里插入图片描述

"\{\}"系列符号

在这里插入图片描述[a-z] \{5\} 精确匹配5个小写字母

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值