linux基础:shell中的正则表达式用法大全

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础:shell中的正则表达式用法大全相关的知识,希望对你有一定的参考价值。

在Linux系统中,正则表达式(RegularExpression)是通过一些特殊字符的排列,用以查找、替换、删除等操作的强大工具,对于每一个Linux用户,都是非常重要的。
在现有的系统中,正则表达式也分为基础正则表达式(grep),扩展正则表达式(egrep)。在正式了解正则表达式之前,先了解一些相关的字符概念,它们在正则表达式中都有特殊的含义与用法。

对于基础正则表达式grep而言,每个特殊字符分别有不同的匹配:

1.字符匹配:


        .     :匹配任意单个字符
       [ ]    :匹配范围内的任意单个字符,如[0-9],[a-z],[A-Z]...
       [^ ]   :匹配范围外的任意单个字符
        [:digit:]:匹配任意单个数字,0-9
     [:lower:]:匹配任意单个小写字母,a-z
     [:upper:]:匹配任意单个大写字母,A-Z
     [:alpha:]:匹配任意单个字母,包含大小写a-z,A-Z
     [:alnum:]:匹配任意单个字符,包含a-z,A-Z,0-9
     [:space:]:匹配任意会产生空白的字符

 

2.次数匹配:用在要指定其出现的次数的字符后面,用以限制其前面的字符要出现的次数;
     
     *:匹配前面的字符任意次(0,1或多次);
      grep "x*y":
       xxxyabc:匹配3次
       yabc:匹配0次
       abcxy:匹配一次
       abcy:匹配0次

     .*:匹配任意长度的任意字符;

     \+:匹配前面的字符至少1次;
      grep "x\+y":
       xxxyabc:匹配3次
       yabc:不匹配
       abcxy:匹配一次
       abcy:不匹配 

     \?:匹配前面的0次或1次,即前面的字符可有可无;
      grep "x\?y":
       xxxyabc:匹配1次
       yabc:匹配0次
       abcxy:匹配1次
       abcy;匹配0次 

     \{m\}:其前面的字符出现m次,m为非负整数;
      grep "x\{2\}y":
       xxxyabc:匹配
       yabc:不匹配
       abcxy:不匹配
       abcy:不匹配 

     \{m,n\}:其前面的字符出现m次,m为非负整数;[m,n]
      \{0,n\}:至多n次;
      \{m,\}:至少m次;
      \{m,n\}:前面的字符至多出现n次,至少m次
      
3.位置锁定:限制使用模式搜索文本,限制模式所匹配到的文本只能出现于目标文本的特定位置;
     
     ^:行首锁定;用于模式的最左侧,^PATTERN
     $:行尾锁定;用于模式的最右侧,PATTERN$
      ^PATTERN$:要让PATTERN完全匹配一整行;
      ^$:空行;
      ^[[:space:]]*$:以空格为开头的,以任意字符为结尾的行
      
       单词锁定:由非特殊字符组成的连续字符(字符串)都称为单词;
 
     \<或\b:词首锁定,用于单词模式的左侧,格式为\<PATTERN, \bPATTERN
     \>或\b:词尾锁定,用于单词模式的右侧,格式为PATTERN\>, PATTERN\b
      \<PATTERN\>:单词锁定;

以下通过一些例子来介绍相关用法:

本文出自 “11283159” 博客,请务必保留此出处http://11293159.blog.51cto.com/11283159/1749738

以上是关于linux基础:shell中的正则表达式用法大全的主要内容,如果未能解决你的问题,请参考以下文章

linux shell基础sed命令(编辑中)

linux基础正则表达式shell基础文件查找和压缩

java 正则表达式是啥?

linux基础正则表达式shell基础文件查找和压缩

shell中的正则表达式, and和or写法, vim中的查找和替换用法

Linux学习8之Shell编程--基础正则表达式