linux 正则表达式 使用简单演示


   正则表达式,又称正规表示法常规表示法英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

本例使用的是Ubuntu系统。只是简单演示一下怎么使用正则表达式,顺便加深一下自己对正则表达式印象:

使用文件是file 内容如下:

ab1234
ab 456
cd89
f1
r123
ab1234cd
1234ab
123
ab
ad
abd
adc
abc
abvd
2

现在我们想获得以字符开头以数字结尾的字符串

grep '^[a-z].*[0-9]$' file 
ab1234
ab 456
cd89
f1
r123

因为\d是不是基本正则表达式字符串,所以无法在grep 下使用。否则会出错。具体有哪些基本字符串占时还没研究过。

grep '^[a-z].*\d$'


 

ab1234cd
ad
abd
abvd

发现这里\d被解释为以字符d结尾的字符串了!!使用\w也有小心一点,使用{}记得用\{ \} 不然会达不到预期效果
grep '^[a-z].*[0-9]$' file
中 .一定不能少 .意思是匹配除“\n”之外的任何单个字符。要匹配包括“\n”在内的任何字符,请使用像“(.|\n)”的模式

而*匹配前面的子表达式零次或多次。在本例就是匹配 .零次或者多次。若不加 .结果就是

grep '^[a-z]*[0-9]$' file  
f1
2


这时候*比配的是[a-z]任意字符0次或者多次。0次就是 2 一次或者多次就是 f1.

+是匹配前一字符一次或者多次,

本例使用:

 grep '^[a-z].\+[0-9]$' file  
ab1234
ab 456
cd89
r123

与上一个 grep '^[a-z].*[0-9]$' file

发现少了 f1 这一行,因为其匹配要多于一个。f1不符合要求,若是有fa1,fb1,fc1.。。。都是符合要求的。

现在使用另一个实例 text 内容

a
ab
aab
aabb
aaabb
aaabbb
grep '^[a-z]\+' text 

结果

ab
aab
aabb
aaabb
aaabbb

==这个命令

grep '^[a-z]\{1,\}' text 


 

 grep '^[a-z]\{0,\}' text  
== grep '^[a-z]*' text  

结果

a
ab
aab
aabb
aaabb
aaabbb

 

grep '^ab[d|c]' file  
abd
abc


获得以ab开头紧跟d或者c字符的字符串

这是 |使用

 grep '^[a-z].*\s[0-9].*$' file   
ab 456

这是匹配\s是空白

记得[a-z]和[0-9]后.*都是不可少的,





 

 



 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

九霄的爸爸

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

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

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

打赏作者

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

抵扣说明:

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

余额充值