1.Shell正则表达式
Linux中常用的有两种正则表达式引擎:基础正则表达式BRE、扩展正则表达式ERE。
正则表达式也译为正规表示法、常规表示法,是一种字符模式,用于再查找过程中匹配指定的字符。
支持正则表达式的程序:locate | find | vim | grep | sed | awk
1.1 基础正则表达式
字符 | 描述 |
---|---|
. | 匹配除换行符\n之外的任何单个字符 |
* | 匹配前面的子表达式零次或多次 |
.* | 匹配任意长度字符 |
^ | 匹配输入字符串的开始位置(行首) |
$ | 匹配输入字符串的结尾位置(行尾) |
^$ | 空行 |
[] | 匹配包含在方括号里的任意一个字符或一组单个字符 |
[^] | 匹配不包含在方括号里任意一个字符或一组单个字符 |
< | 匹配单词开头的位置 |
> | 匹配单词词尾的位置 |
< > | 精确匹配 |
{n} | 匹配前面的字符连续出现n次 |
{n,} | 匹配前面的字符至少出现n次 |
{n,m} | 匹配前面的字符至少出现n次与m次之间 |
( ) | 保存被匹配的字符 |
\d | 匹配数字[0-9]。(grep -P) |
\w | 匹配字母数字下划线[a-zA-Z0-9_]。(grep -P) |
\s | 匹配空格、制表符、换行符[\t\r\n]。(grep -P) |
1.2 扩展正则表达式
grep需使用参数-E或使用egrep,sed需使用参数-r。
扩展正则表达式 | 说明 |
---|---|
+ | 匹配前面的子表达式一次或多次 |
? | 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符 |
| | 指明两项之间的一个选择(或) |
() | 标记一个子表达式的开始和结束位置。 |
{n} | 匹配前面的字符连续n次 |
{n,} | 匹配前面的字符至少n次 |
{n,m} | 匹配前面的字符n到m次 |
1.3 第二类正则表达式
表达式 | 说明 |
---|---|
[:alnum:] | 字符与数字字符 |
[:alpha:] | 字母字符(包括大小写字母) |
[:blank:] | 空格与制表符 |
[:digit:] | 数字 |
[:lower:] | 小写字母 |
[:upper:] | 大写字母 |
[:punct:] | 标点符号 |
[:space:] | 包括换行符,回车等在内的所有空白 |