Linux正则表达式

Linux_commands #正则表达式

/toc

Regex正则表达式在线测试、生成、解析工具 - GoRegex.cn

正则表达式:Regual Expression;

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

主要分为两类:

  • 基本正则表达式:BRE
  • 扩展正则表达式:ERE

正则表达式的意义

  • 处理大量的字符串
  • 处理文本

通过特殊符号的辅助,可以让工作更加高效。
通常Linux运维工作都是面临大量带有字符串的内容:

  • 配置文件
  • 程序代码
  • 命令结果输出
  • 日志文件

正则表达式可以根据特定的需要完成特定的表达式

  • 是一套规则和方法
  • 以单温进行,一次处理一行
  • 化繁为简,提高工作效率
  • Linux仅支持三剑客(sed、awk、grep)支持,其他命令无法使用正则表达式,只能使用三剑客

Linux三剑客

文本处理工具,均支持正则表达式引擎

  • grep:文本过滤工具,(模式:pattern)工具
  • sed:stream edior,流编辑器;文本编辑工具
  • awk:Linux的文本报告生成器(格式化文本),Linux上是gawk

正则表达式的分类

Linuix三剑客主要分两类

基本正则表达式BRE集合

  • 基本正则表达式
BRE对应元字符有:^$.[]*
  • 匹配字符
  • 匹配次数
  • 位置锚定
符号 作用
^ 尖角号,用于模式的最左侧,如"^nobady",匹配以nobady单词开头的行
$ 美元号,用于模式的最又侧,如"nobady$",匹配以nobady单词结尾的行
^$ 组合符,表示空行
. 匹配任意一个且只有一个字符,不能匹配空行
\ 转义字符,让特殊含义的字符,还原本意
* 匹配前一个字符(连续出现)0次或1次以上,重复0次代表空,即匹配所有内容
.* 组合符,匹配所有内容
^.* 组合符,匹配任意多个字符开头的内容
.*$ 组合符,匹配以任意多个字符结尾的内容
[abc] 匹配[]集合内的任意一个字符,a或b或c,可以写[a-c]
[^abc] 匹配除了后面的任意字符,a或b或c,表示对[abc]的取反

扩展正则表达式ERE集合

  • 扩展正则表达式
ERE在BRE基础上,增加了 (){}?+| 等字符

扩展正则必须使用 grep -E 才能生效

字符 作用
+ 匹配前一个字符1次或者多次
[😕]+ 匹配括号内的“:”或“/”字符1次或者多次
? 匹配前一个字符0次或者1次
\ 表示或者,同时过滤多个字符串
() 分组过滤,被括起来的内容表示一个整体
a 匹配前一个字符最少n次,最多m次
Tips:
// 双斜杠表示开头和结尾,中间表示需要匹配的字符

![[../../../A-Accessories-Note附件/Pasted image 20231122234229.png]]

posted @   Demon丶安梓  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示