linux之基础正则表达式

22 篇文章 2 订阅

linux之基础正则表达式

正则表达式是为处理大量文本或者字符串而定义的一套规则,一般只有三剑客(grep、sed、awk)支持,正则表达式分基本正则和扩展正则

说白了就是用几个符号替换一部分文本,例如有两行:
hello java
hello linux
这两行的共同点就是有hello,所以我们可以用 ^hello 或者 hello.* 来表示这两行,在这里 ^hello 或者 hello.* 就是正则表达式,正则表达式本身也是字符串,用一个字符串表示一堆字符串,这就是正则表达式的用处

很多人会问正则表达式和通配符有什么区别?如何区分通配符和正则表达式?
区分通配符和正则表达式:
1.三剑客grep、sed、awk都是正则,其它都是通配符
2.文件目录名->通配符,文件内容/字符串->正则表达式

基本上从这两个方面就可以区分正则表达式和通配符,linux三剑客grep、sed、awk都是处理字符串的,经常会与正则表达式一起使用处理文本;除此之外的基本上都是关于目录或者文件名的,均是属于通配符。

基础正则表达式解释
^^word表示以word开头的内容
$word$表示以word结尾的内容
^$表示空行
.代表且只能代表任意一个字符
\转义字符
*重复之前的字符0或多次
.*匹配任意多个字符
[a,b,c]匹配abc其中的一个
[a-z]匹配a-z其中的一个字符

测试文件

[root@linuxforliuhj test]# cat test.txt 
hello this is linux
i am lhji

who are you 
if you want me

张三是一个老师
李四是张三的媳妇
\HELLO
asssssdeforce
hey ZZZ

【1】过滤以i开头的行grep '^i' test.txt

[root@linuxforliuhj test]# grep '^i' test.txt 
i am lhji
if you want me

【2】过滤以x结尾的行grep 'x$' test.txt

[root@linuxforliuhj test]# grep 'x$' test.txt 
hello this is linux

【3】过滤空行grep -n '^$' test.txt

[root@linuxforliuhj test]# grep -n '^$' test.txt 
3:
6:

【4】过滤每一行的第二个字符为e的行grep -n '^.e' test.txt

[root@linuxforliuhj test]# grep -n '^.e' test.txt  
1:hello this is linux
11:hey ZZZ

【5】过滤包含字符’\'的行grep -n '\\' test.txt

[root@linuxforliuhj test]# grep -n '\' test.txt    
grep: Trailing backslash
[root@linuxforliuhj test]# grep -n '\\' test.txt 
9:\HELLO

【6】过滤包含小写字母a、b、c的行grep -n '[abc]' test.txt

[root@linuxforliuhj test]# grep -n '[abc]' test.txt   
2:i am lhji
4:who are you 
5:if you want me
10:asssssdeforce

【7】过滤包含大写字母的行grep -n '[A-Z]' test.txt

[root@linuxforliuhj test]# grep -n '[A-Z]' test.txt    
9:\HELLO
11:hey ZZZ

包含转义符的正则和扩展正则表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Operose-honeybee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值