正则表达式字符不同命令比较
grep |
egrep |
sed |
awk |
|
转义 |
||||
行头 |
^ |
^ |
^ |
|
行尾 |
$ |
$ |
$ |
$ |
{m} {m,} {m,n} |
{n} |
{n} |
{n} |
awk使用—posix或—re-interval选项时,{n}可直接使用,若不使用该选项,则不能使用{n}这种模式,要表示{或}本身意义,可使用\{或\}来表示 |
{0,} |
* |
* |
* |
*或*,(要表达*,得用\*) |
{1,} |
+ |
+ |
+ |
+或+,(要表达+,得用\+) |
{0,1} |
? |
? |
? |
?或?,(要表达?,得用\?) |
任意字符 |
.(不含 ) |
.(不含 ) |
.(不含 ) |
. 含 |
[ ] |
匹配包含在[字符]之中的任意一个字符 |
coo[kl]可以匹配cook或cool |
[^ ] |
匹配[^字符]之外的任意一个字符 |
123[^45]不可以匹配1234或1235,1236、1237都可以 |
[ - ] |
匹配[]中指定范围内的任意一个字符,要写成递增 |
[0-9]可以匹配1、2或3等其中任意一个数字 |
正则表达式实际就是一些特殊字符,賦予了他特定的含义 。
^word ##搜索以word开头的
word$ ##搜索以word结尾的
. ##点代表且只能代表任意一个字符
##例 . 转义符号,让有着特殊身份意义的字符,脱掉马甲,还原原型。
* ##重复0个或多个前面的一个字符,例o*匹配没有o,有一个o或多个 oooo
.* ##匹配所有字符。^.*以任意多个字符开头,.*$以任意多个字符结尾
[] ##字符集合的重复特殊字符的符号。
[root@NGINX-Y ~]# grep -n "[123]" 19
5: <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
[^word] ##匹配不包含^后的任意字符的内容。
a { n ,m }重复 n 到 m 次,前一个重复的字符 。
{ n , } 重复至少 n 次,前一个重复的字符。
{ n } 重复 n 次,前一个重复的字符
##最多3次
^$ ##空行