正则表达式

目录

1、正则表达式基础

1) 正则表达式定义

2)正则表达式类型

2、基础正则

1)  ^    以.....开头的行

2)$   以.....结尾的行

3)^$  空行

4). (点)表示任意一个字符,不匹配空行

5)\  转义字符

6) *     前一个字符连续出现0次或者0次以上

7).*  所有内容(包括空行)

8)[ ]  中括号, 一次匹配一个字符,匹配任何一个字符

9)[^...]   排除

3、扩展正则

1) + 前一个字符连续出现1次或者多次以上

2)   | 或者

3)() 被括起来的内容表示一个整体

4) { } 连续出现 

5)?连续出现,前一个字符出现0次或者1次


1、正则表达式基础

1) 正则表达式定义

正则表达式是一种可供linux根据过滤文本的自定义模版。linux工具(awk\sed)会在读取数据是使用正则表达式对数据进行模式匹配。如果数据匹配模式,它就会处理,如果数据部匹配模式,他就会被启用。

可以在正则表达式中使用不同的特殊字符来定义特定的数据过滤模式。

2)正则表达式类型

正则表达式是由正则表达式引擎来实现的。它是一种底层软件,负责监视正则表达式并用这些模式进行文本匹配。

基础正则表达式引擎(BRE)grep/sed/awk
扩展正则表达式引擎(ERE)egrep/sed -r/awk

2、基础正则

基础正则含义搭配
^以....开头的行
$以.....结尾的行
^$空行搭配^$
.任意一个字符
*前一个字符连续出现(重复)0次或者0次以上
.*所有内容搭配.*
\转义字符 \.
[ ]一个整体,匹配任意一个字符[ ][ ]与+搭配
[^ ]取反排除
正则贪婪性.*或者连续出现

1)  ^    以.....开头的行

2)$   以.....结尾的行

3)^$  空行

grep -n '^$' 文件名    -n参数表示显示行号

企业应用案例

排除文件中空行 grep -v '^$' 文件名

4). (点)表示任意一个字符,不匹配空行

5)\  转义字符

6) *     前一个字符连续出现0次或者0次以上

7).*  所有内容(包括空行)

正则表达式的贪婪性,  .* 表示所有或*连续出现的时候,表现出尽可能贪婪匹配。

8)[ ]  中括号, 一次匹配一个字符,匹配任何一个字符

 [abc] 匹配a或者b或者c

[a-z] 小写

[A-Z] 大写

[0-9] 数字

匹配文件中的大小写字母和数字

grep ' [a-zA-z0-9]  文件名

或者是 grep '[a-Z0-9]' 文件名

或者是 grep -i '[a-z0-9]' 文件名   -i参数不区分大小写

9)[^...]   排除

[^ abc] 排除,排除a或者b或者c的内容

3、扩展正则

符号含义搭配
+前一个字符连续出现1次或者1次以上[ ]+
|或者
( )一个整体,sed反向引用
{ }o{n,m} 前一个字母o,至少连续出现n次,最多连续出现m次
连续出现,前一个字符出现0次或者1次

1) + 前一个字符连续出现1次或者多次以上

2)   | 或者

对比

符号含义应用场景
[ ]1次匹配一个字符匹配单个字符[ ] 和+
|匹配1个或者多个字符

匹配单词

3)() 被括起来的内容表示一个整体

egrep ' oldb(o|e)y' 文件名

4) { } 连续出现 

o{n,m} 前一个字母o,至少连续出现n次,最多连续出现m次

o{n} 前一个字母连续出现n次

o{n,} 前一个字母o,至少连续出现n次

o{,m} 前一个字母o ,最多连续出现m次

5)?连续出现,前一个字符出现0次或者1次

练习题目:

排除文件中的空行或者含有#号的行

grep命令

sed 、awk命令

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值