正则匹配

正则匹配

Scroll Down

01. 基础正则

字符描述
^行首以什么开始
$行尾以什么结束
^$表示空白行
.表示任意字符,不包括空白行
*前面一个字符出现0次,或多次
.*表示任意字符,包括空行
\<单词以什么开始
\>单词以什么结束
[ ]集合
[^ ]取反
\转义字符

02. 扩展正则

字符描述
前面字符出现0次或1次
+前面字符出现1次或多次
()表示一个整体
{}匹配数次,{n,m}至少n次,最多m次
匹配m次
|将两个匹配条件进行逻辑或 (or) 运算

03.元字符

字符描述
\s匹配空白字符,空格、tab、换行,不包括空行
\S匹配任何可见字符
\b匹配单词边界

04.预定义字符

字符描述
[[:lower:]]匹配小写字母
[[:upper:]]匹配大写字母
[[:punct:]]匹配标点符号
[[:alpha:]]匹配任意一个字母字符(包括大小写字母)
[[:blank:]]空格与制表符(横向纵向)
[[:alnum:]]匹配任意一个字母或数字字符 === [a-zA-Z0-9]
[[:space:]]匹配一个包括换行符,回车等在内的所有空白符
[[:print:]]任何一个可以打印的字符

05.在Linux中使用正则注意点

  1. 很多命令只支持基础正则,想要支持扩展正则需要加对应参数,比如三剑客
grep 	只支持基础正则
grep -E 支持基础正则和扩展正则
egrep 	支持基础正则和扩展正则

sed 	只支持基础正则
sed -r 	支持基础正则和扩展正则