正则表达式

前言

在数字化浪潮汹涌的今天,Linux运维工作已成为企业信息化建设中不可或缺的一环。我有幸在这个领域深耕多年,见证了Linux系统的广泛应用与运维技术的飞速发展。今天,我决定将我的经验、心得和所学知识,通过博客的形式分享给更多的同行和初学者。

回顾我的运维生涯,每一个日夜都充满了挑战与收获。从最初的系统安装、配置,到后来的性能调优、故障排查,再到复杂环境的构建与维护,我逐渐积累了丰富的经验和技能。在这个过程中,我深刻体会到运维工作的重要性,它不仅是系统稳定运行的保障,更是企业数据安全和业务连续性的守护神。

然而,运维工作并非一成不变。随着云计算、大数据、人工智能等新技术的不断涌现,运维领域也在不断创新和变革。我深知,只有不断学习、不断进步,才能跟上时代的步伐。

因此,我决定开设这个运维博客,将我在工作中的所见所闻、所思所感记录下来。这里既有实用的技术分享,也有对运维行业的深度思考。我希望通过我的博客,能够帮助更多的人了解Linux运维,掌握运维技能。

1、正则表达式

简介:由一类特殊字符及文本字符所编写的模式,其中有些字符,不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符。正则表达式分两类:基本正则表达式;扩展正则表达式。
正则表达式的元字符分类:字符匹配、匹配次数、位置锚定、分组

2、基本正则表达式元字符

2. 1. 字符匹配

范例:

2. 2. 匹配次数

范例:

范例: 匹配正负数

范例: 取IP地址

2.3.位置锚定
位置锚定用于定位出现的位置

注意: 单词是由字母,数字,下划线组成
范例:

范例:排除掉空行和#开头的行
[root@localhost ~]# grep -v '^$' /etc/profile|grep -v '^#'
[root@localhost ~]# grep '[$#]' /etc/profile
2.4.分组或者
2.4.1.分组
分组:() 将多个字符捆绑在一起,当作一个整体处理,如:(root)+
后向引用:分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名
方式为: \1, \2, \3, ...
\1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符
注意: \0 表示正则表达式匹配的所有字符
示例:
(string1(string2))
\1 :string1(string2)
\2 :string2
注意: 后向引用 引用前面的分组括号中的模式所匹配字符,而非模式本身
2.4.2.或者
或者:|
示例:

范例:排除空行和#开头的行

3、扩展正则表达式元字符

3.1.字符匹配

3.2.次数匹配

3.3.位置锚定

3.4.分组其它

posted @ 2024-04-12 16:23  Linux运维技术栈  阅读(39)  评论(0编辑  收藏  举报