linux下——Shell编程之正则表达式

一、正则表达式是什么?

正则表达式主要是指在文档中过滤和处理数据的一种方法。

二、基本正则

基本正则符号列表

正则符号含义
abc匹配abc
^匹配开头
$匹配结尾
[集合]匹配集合中任意单个字符
[^集合]对集合取反
.匹配任意单个字符
*匹配前一个字符任意次(含0次)
.*匹配任意
\ {n,m}匹配前一个字符n-m次
\ {n,}匹配前一个字符n+次
\ {n}匹配前一个字符n次

基本正则的使用

grep 'abc' python.txt           #查询文件中包含abc的行
grep '^abc' python.txt          #查询文件中以abc开头的行
grep "[^abc]" python.txt        #查找不包含a或者b或者c的其他内容
grep "[abc]" python.txt         #查找包含a或者b或者c的行
grep r.*t python.txt            #查找以r开头以t结尾的
grep "[0-9]\{3,4\}" python.txt  #查找包含数字3-4次的

三、扩展正则

扩展正则符号列表

正则符号含义
+匹配前面的字符至少1次
匹配前面的字符0 or 1次
()组合与保留
I或者
{n,m}匹配前面的字符n-m次
{n, }匹配前面的字符至少n次
{n }匹配前面的字符n次

扩展正则的使用

grep -E "0{2,3}" python.txt #查找0出现2-3次
grep -E "[a-z]+" python.txt #查找a-z等字母至少出现一次
grep -E "s?bin" python.txt  #查找sbin或者bin(?匹配前面的s字符0-1次)
grep -E "(rot|dae)" python.txt #查找rot或者dae

四、Perl 兼容正则

Perl 兼容正则符号列表

正则符号含义
\b匹配单词边界
\w匹配字符数字下划线
\W与\w相反
\s匹配空白
\d匹配数字
\d+匹配多个数字
\D匹配非数字

Perl 兼容正则的使用

grep -P 'abc' python.txt     #匹配只要包含abc的行
grep -P '\babc\b' python.txt #\b单词边界,a前面不能有内容,c后面也不能有内容,只匹配abc
grep -P "\w" python.txt      #查找字母数字下划线
grep -P "\W" python.txt      #查找非字母数字下划线
grep -P "\s" python.txt      #查找空格、空白

五、正则中grep的相关用法

grep 语法格式: grep [选项] 匹配模式 [文件]…
常用选项:
-i 忽略大小写
-v 取反匹配
-w 匹配单词,和兼容正则里面的\b 是一样的
-q 静默匹配,(无论结果是否匹配成功)不将结果显示在屏幕


感谢大家浏览,喜欢的可以评论关注一下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小飞的BLOG

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

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

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

打赏作者

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

抵扣说明:

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

余额充值