Linux系统开发: linux下正则表达式

简介: Linux系统开发: linux下正则表达式

1.1 正则表达式介绍

正则表达式就是为了处理大量的文本|字符串而定义的一套规则和模板。


通过定义的这些特殊符号的辅助,系统管理员就可以快速过滤,替换或输出需要的字符串。


Linux正则表达式一般以行为单位处理。


正则表达式应用非常广泛,存在于各种语言中:php perl Python 等。


现在学的是Linux中的正则表达式,最常应用正则表达式的命令是linux三剑客:grep(egrep),sed,awk。


Linux系统开发: 学习linux三剑客(awk、sed、grep)(上)


Linux系统开发: 学习linux三剑客(awk、sed、grep)(下)



正则表达式是一个模版,这个模版是由一些普通字符和一些元字符组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。


在少数情况下,正则表达式可能失效,多数与字符集有关。

image.png

1.2 区分通配符与正则表达式

这里一定要弄清楚正则表达式和linux下使用的通配符有本质区别。

正则表达式用来找:【文件】内容,文本,字符串。一般只有三剑客支持。

示例:

#grep 123* demo.c
123* 则表明匹配12或1234/1235等字符串,但是不能匹配123

通配符用来找:文件目录名,普通命令都支持。

示例:

#ls  *
表明递归列出当前目录下的所有不以.号开头的文件信息

在三剑客awk,sed,grep,egrep都是正则表达式,其他都是通配符


1.3 正则表达式的分类

基本的正则表达式(Basic Regular Expression 又叫Basic RegEx 简称BREs)


扩展的正则表达式(Extended Regular Expression 又叫Extended RegEx 简称EREs)


Perl的正则表达式(Perl Regular Expression 又叫Perl RegEx 简称PREs)


1.3.1 基本的正则表达式

image.png

只有在用反斜杠\进行转义的情况下,字符(),{}才会在BRE被当作元字符处理,而ERE中,任何元符号前面加上反斜杠反而会使其被当作普通字符来处理。所以ERE中直接使用(),{},而BRE则 ,\{\}


grep中调用-E参数指定使用扩展正则表达式。


sed中调用-r参数指定使用扩展正则表达式。


或者直接使用egrep。


1.3.2 POSIX字符类

POSIX字符类是一个形如[:...:]的特殊元序列(meta sequence),他可以用于匹配特定的字符范围。


注意运用时还得在外层加一对[]号。

image.png

1.3.3 Perl的正则表达式: 元字符

元字符(meta character)是一种Perl风格的正则表达式,只有一部分文本处理工具支持它,并不是所有的文本处理工具都支持。

image.png


目录
相关文章
|
16天前
|
Rust 监控 安全
【专栏】`ripgrep`(rg)是Linux下快速、内存高效的文本搜索工具,用Rust编写,支持PCRE2正则表达式
【4月更文挑战第28天】`ripgrep`(rg)是Linux下快速、内存高效的文本搜索工具,用Rust编写,支持PCRE2正则表达式。相比`grep`,它在处理大文件和复杂模式时更具优势。安装`rg`可通过软件包管理器,如在Debian系系统中使用`sudo apt install ripgrep`。基本用法包括简单搜索、递归搜索、忽略大小写、显示行号等。高级功能包括固定字符串搜索、多文件匹配、并行搜索、排除选项和区域搜索。适用于日志分析、代码审查等场景,是提升工作效率的利器。
|
2月前
|
存储 算法 Shell
【Shell 命令集合 文档编辑】Linux 正则表达式匹配 egrep命令使用教程
【Shell 命令集合 文档编辑】Linux 正则表达式匹配 egrep命令使用教程
13 0
|
3月前
|
Linux Shell
Linux下的Shell基础——正则表达式入门(四)
Linux下的Shell基础——正则表达式入门(四)
25 1
Linux下的Shell基础——正则表达式入门(四)
|
9月前
|
Linux Shell Perl
第十一章、【Linux】正则表达式与文件格式化处理
第十一章、【Linux】正则表达式与文件格式化处理
54 0
|
7月前
|
Linux Perl
[笔记]linux grep之正则表达式
[笔记]linux grep之正则表达式
|
8月前
|
Unix Linux
如何在 Linux 中使用 Grep 和正则表达式进行文本搜索?
如何在 Linux 中使用 Grep 和正则表达式进行文本搜索?
201 5
|
11月前
|
Linux
【Linux系统开发】 x210开发板 虚拟驱动创建流程(驱动编译进内核)
【Linux系统开发】 x210开发板 虚拟驱动创建流程(驱动编译进内核)
100 0
|
11月前
|
Linux Shell 开发工具
【Linux系统开发】x210开发板根目录文件系统构建(下)
【Linux系统开发】x210开发板根目录文件系统构建(下)
144 0
|
11月前
|
Linux 编译器 C语言
【Linux系统开发】x210开发板根目录文件系统构建(上)
【Linux系统开发】x210开发板根目录文件系统构建
110 0
|
11月前
|
存储 Linux Android开发
【Linux系统开发】Study210利用SD运行流水灯程序
【Linux系统开发】Study210利用SD运行流水灯程序
83 0