shell正则表达式

正则表达式分为两类,基本正则表达式以及扩展正则表达式,其主要作用是文本搜索以及字符串处理。

基本正则表达式原字符及其含义

符号含义
*匹配0个或多个*前面的普通字符
.匹配任意字符
^匹配行首
$匹配行尾
[]匹配字符集合
\转义字符,屏蔽元字符的特殊意义
\{n\}匹配前面字符出现n次
\{n,\}匹配前面字符至少出现n次
\{n,m\} 匹配前面字符出现n~m次

举例如下:

1.”*” : 表示匹配前面字符出现0次或者多次

例如:abc*d,此时可以匹配abcd、abccd、abcccd、abcccccd等

2. “.” :可以匹配任意字符

例如: abc. 可以匹配abcd、abce、abc1、abc5等,也可以匹配空格

3. “^” :表示匹配行首

例如:^abc,表示匹配以abc为开头的所有行

4. “$” :表示匹配行尾,与$用法刚好相反

例如:abc$,表示匹配以abc结尾的所有行,^$表示匹配空行,^.$匹配包含一个字符的行

5. “[]” :匹配字符集合,支持通过穷举方法列出所有元素

例如:[0123456789],表示匹配1到9任意一个数字,也可以写成[0-9],[A-Z]表示匹配所有大写字母,[a-z],表示匹配所有小写字母,[^a-d],表示匹配除了a-d之外的所有字符,取反的意思,[A-Za-z],表示匹配所有英文字母

6. “\” :表示转义字符,可以屏蔽一个元字符的含义

例如:abcd\. 此时.将不会匹配任意字符,已被转义,输出结果将是abcd.

7. “\{\}”:用法与*类似,但是可以指定匹配的次数

例如:abc\{3\},表示匹配字母c出现的次数为3次,将匹配abccc。abc\{3,\}表示可以匹配字母c出现的次数至少3次,可以匹配abccc、abcccc、abcccc。 abc\{3,5\}表示将匹配c出现的次数为最少3次,最多5次

扩展正则表达式元字符及其含义

符号含义
匹配0个或1个前面的字符
+匹配1个或多个前面的字符
()包含正则表达式与”|”一起使用
|正则表达式”或”操作符

举例如下:

1. “?” :匹配?前面的字符0次或者1次

例如:abc?,表示匹配字母c出现0个或1个,只能匹配一个字符,可以匹配ab、abc

2. “+” : 匹配前面的字符1次或者多次,至少1次

例如:ab+c,可以匹配abc、abbc、abbbc、abbbbbc

3. “()和|” :两个符号通常一起使用,表示一组可选字符的集合

例如:abc(d|e|f)g,可以匹配abceg、abcdg、abcfg等

特殊字符组

[[:alpha:]]匹配任意字母字符,不管是大写还是小写
[[:alnum:]]匹配任意字母数字字符0~9、A~Z或a~z
[[:blank:]]匹配空格或制表符
[[:digit:]]匹配0~9之间的数字
[[:lower:]]匹配小写字母字符a~z
[[:print:]]匹配任意可打印字符
[[:punct:]]匹配标点符号
[[:space:]]匹配任意空白字符:空格、制表符、NL、FF、VT和CR
[[:upper:]]匹配任意大写字母字符A~Z

标签