查找与替换
BRE (基本)正则:
. 匹配任何单个字符
+ 匹配前面一个或者多个
? 匹配前面零个或者一个
* 匹配前面任何(或者没有的)单个字符
ab*c 表达匹配ac, abc, abbc, abbbbc
^ 匹配行或者字符串开始处 // ^abc : abc出现在一行的开头
$ 匹配字符串完结处 // abc$ : abc 出现一行的结尾
[Ti] 匹配方括号内的任意字符; 在一行的任意位置,含有T 或者i.
[^Ti] 指匹配不在方括号内的任意字符, 不匹配T 和 i.
() 匹配方括号括起来的正则
tol.toy 匹配tol这三个字符,加上任意一个字符,再加上toy这三个字符
tol.*toy 含有tol的三个字符, 加上任何0个或者多个字符,再加上toy
\{n,m\} 匹配前面单个字符重复出现的次数
\{n\} 重现n次
\{n,\} 至少重复出现n次
\{n,m\} 重现n至m次
向后引用:
\( \) \(ab\).*\1 匹配ab组合二次重现,中间可以存在任何数目的字符。
\(["" ']\).*\1 匹配单引号或者双引号括起来的子, 比如'foo' 或者"bar"
example:
abcABCdefDEF
ABC -> match
^ABC -> not match since ABC is not at the beginning
def$ -> not match since it is not at the end
^$ 匹配空的字符串或者行列
^ and $ 只有在开始或者结尾处有这层含义, ab^cd就没有特殊的含义
cc -E foo.c | grep -v '^$' > foo.out
C编译出的拓展文件可能含有很多空行, 用此方法删除空行
浙公网安备 33010602011771号