码迷,mamicode.com
首页 > 系统相关 > 详细

SHELL正则表达式

时间:2020-08-03 18:42:50      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:分类   指定   fst   ima   输出   git   grep   正则表达式   技术   

简介
正则表达式其主要作用是通过一些拥有特殊含义得字符
完成日常工作中我们需要得特定字符串匹配,或者从输出内容中匹配出符合我们需要得内容。

分类

  • 基础正则表达式
  • 扩展正则表达式

基础正则表达式

正则表达式 简述 是否支持
\ 转义字符 支持
^ 以指定字符开头 支持
$ 以指定字符结尾 支持
\> 词尾锚定 支持
. 任意单个字符 支持
* 匹配前面的字符0任意次 支持
[] 匹配[]中的任意一个字符 支持
[-] 范围匹配 支持
? 匹配前面字符0次或一次 不支持
+ 匹配 前面的字符一次或多次 不支持
() 匹配字符串 不支持
{n} 匹配前面的单词或字符串n次 不支持
{m,} 匹配前面的单词或字符串最少m次 不支持
{,n} 匹配前面的单词或字符串最多m次 不支持
{m,n} 匹配前面的单词或字符串最少n次最多m次 不支持
I 匹配号两边任意一项 不支持
注意:如上基础扩展正则表达式中不支持的表达式,除Command本身就可以通过特定参数
开启扩展支持的选项外,还可以通过转义字符完成支持,请参考如下几个实例

案例演示:

1丶即可通过转义符完成本不支持基础的正则予以支持
grep ‘ro{2,}‘ /etc/passwd
技术图片
2丶grep&sed默认开启扩展的选项演示如下
egrep ‘ro{2,}‘ /etc/passwd
grep -E ‘ro{2,}‘ /etc/passwd
sed -r -n ‘/ro{2,}/‘p /etc/passwd
技术图片

扩展正则表达式

正则表达式 简述 是否支持
\ 转义字符 支持
^ 以指定字符开头 支持
$ 以指定字符结尾 支持
\> 词尾锚定 支持
. 任意单个字符 支持
* 匹配前面的字符0任意次 支持
[] 匹配[]中的任意一个字符 支持
[-] 范围匹配 支持
? 匹配前面字符0次或一次 支持
+ 匹配 前面的字符一次或多次 支持
() 匹配字符串 支持
{n} 匹配前面的单词或字符串n次 支持
{m,} 匹配前面的单词或字符串最少m次 支持
{,n} 匹配前面的单词或字符串最多m次 支持
{m,n} 匹配前面的单词或字符串最少n次最多m次 支持
I 匹配号两边任意一项 支持

常用的POSIX字符类

正则表达式 简述
[:upper:] 匹配大写字母
[:lower:] 匹配小写字母
[:space:] 匹配空格字符
[:alpha:] 匹配任意字母包含大小写
[:digit:] 匹配任意一个数字
[:punct:] 匹配标点符号
[:alnum:] 匹配字母或者数字

案例演示

1丶匹配标点符号
[root@node78 ~]# grep ‘[[:punct:]]‘ /etc/fstab
技术图片
2丶匹配任意字母或者数字(字母不区分大小写)
[root@node78 ~]# echo "I m Love ZhongGuo 555 ; , ::"|grep ‘[[:alnum:]]‘
[root@node78 ~]# grep ‘[[:alnum:]]‘ /etc/fstab
技术图片
3丶只匹配小写字母
[root@node78 ~]# touch {a..z}
[root@node78 ~]# touch {A..Z}
[root@node78 ~]# touch {1..26}
[root@node78 ~]# ls [[:lower:]]
技术图片
4丶只匹配大小字母
[root@node78 tmp]# ls [[:upper:]]
技术图片
5丶只匹配数字
[root@node78 tmp]# ls [[:digit:]]
[root@node78 tmp]# ls [[:digit:]][0-9]
技术图片
6丶匹配空格
[root@node78 tmp]# touch \ a
[root@node78 tmp]# touch \ \ a
[root@node78 tmp]# touch \ \ \ a
[root@node78 tmp]# ls|grep ‘[[:space:]]‘
技术图片

SHELL正则表达式

标签:分类   指定   fst   ima   输出   git   grep   正则表达式   技术   

原文地址:https://blog.51cto.com/12898848/2516104

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!