正则表达式的分类
1.基本正则表达式(BRE,basic regular expression)
字符 | 描述 |
---|---|
^ | ^word搜索以word开头的内容 |
$ | word$搜索以word结尾的内容 |
^$ | 表示空行,不是空格 |
. | 代表且只能代表任意一个字符(不匹配空行) |
\ | 转义字符,让有特殊含义的字符脱掉马甲,现出原形,如.只表示小数点 |
* | 重复之前的字符或文本0个或多个,之前的文本或字符连续0次或多次 |
.* | 任意多个字符 |
^.* | 以任意多个字符串开头,.*尽可能多,有多少算多少,贪婪性 |
括号表达式 | |
[abc][0-9][ \ .,/] | 匹配字符集合内的任意一个字符a或b或c:[a-z]匹配所有小写字母;表示一个整体,内藏无限可能;[abc]找a或b或c可以写成[a-c] |
[^abc] | 匹配不包含 ^ 后的任意字符a或b或c,是对[abc]的取反,且与 ^ 含义不同 |
a \ {n,m \ } | 重复前面a字符n到m次(如果用egrep或sed -r可去掉斜线) |
a \ {n, \ } | 重复前面a字符至少n次,如果用egrep或sed -r可去掉斜线 |
a \ {n \ } | 重复前面a字符n次,如果用egrep或sed -r可去掉斜线 |
2.扩展正则表达式(ERE,extended regular expression)
特殊字符 | 含义 |
---|---|
+ | 重复前一个字符一次或一次以上,前一个字符连续一个或多个,把连续的文本/字符取出 |
? | 重复前面一个字符0次或1次(.是有且只有1个) |
管道符 | 表示或者同时过滤多个字符 |
() | 分组过滤被括起来的东西表示一个整体(一个字符),后向引用 |