正则表达式
基础正则表达式:BRE(basic regular express)
扩展正则表达式:ERE(extend regular express),扩展的表达式有+、?、|和()
符号 | 描述 | 范例 |
. | 出\n匹配任意一个单字符 | [root@localhost ~]# echo -e "123444\nxf"|grep "12." |
^ | 匹配字符串开头的 | [root@localhost ~]# echo -e "123444\nxf"|grep "^12" |
$ | 匹配前面字符串结尾 | [root@localhost ~]# echo -e "123444\nxf"|grep "f$" |
* | 匹配前面字符0个或多个 | [root@localhost ~]# echo -e "xo\nxooo\nxoghjk"|grep "o*" |
+ | 匹配前面一个或多个 | [root@localhost ~]# echo -e "abc\nabbbbcc\nadd" |grep -E 'ab+' |
? | 匹配前字符0或1个 | [root@localhost ~]# echo -e "ac\nabbbc\naddd"|grep -E "a?c" |
[] | 匹配任意一个字符 | [root@localhost ~]# echo -e "ac\nad\ndb"|grep "[ac]" |
[.-.] | 匹配括号中任意字符 | [0-9] [a-z] |
[^] | 匹配除括号内的字符 | [root@localhost ~]# echo -e "ac\nad\ndb"|grep "[^ac]" |
{n} | 至少匹配n次前面的字符 | [root@localhost ~]# echo -e "a\nabc\nc" |grep -E '[a-z]{3,}' |
{n,m} | 匹配n次-m次 | [root@localhost ~]# echo -e "a\nabc\ncd" |grep -E '[a-z]{1,3}' |
() | 单元或组合,就是一个整体 | [root@localhost ~]# echo "123abc" |grep -E -o '(abc)' |
\< | 以字符开始 | [root@localhost ~]# echo -e "1\n12\n123\n1234" |grep '\<123' |
\> | 以字符结束 | [root@localhost ~]# echo -e "1\n12\n123\n1234" |grep '4\>' |
| | 匹配两边的任意一个 | [root@localhost ~]# echo -e "123\nabc" |grep -o -E "(123|abc)" |