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中的正则表达式用法大全的主要内容,如果未能解决你的问题,请参考以下文章