正则表达式
什么是正则表达式
它是以行为单位来进行字符串的处理行为,通过一些特殊符号的辅助,可以让用户轻易达到查找,删除,替换某特定字符串的处理程序。
基础正则表达式字符
| RE字符 |
意义与范例 |
| ^word |
意义:查找以什么开头的字符串。例如:查找以#开头的那一行,并列出行号:grep -n `^#`file.txt |
| word$ |
意义:查找以什么结尾的字符串。例如:将行尾为!的那一行打印出来并列出行号:grep -n `!$` file.txt |
| . |
意义:代表有一个任意字符。例如:查找eve:grep -n `e.e` file.txt |
| |意义:转义字符,将特殊符号的特殊意义去除。例如:查找含有单引号的那一行:grep -n ` file.txt |
|
| * |
意义:重复零到无穷多个前一个字符。例如:找出含有ess,esss等的字符串:grep -n `es*` file.txt |
| [list] |
意义:匹配中括号中的任意一个字符即可。例如:查找含有gl,gd的那一行:grep -n `g[ld]` file.txt |
| [n1-n2] |
意义:查找n1-n2之间的任意字符。例如:查找含有任意数字的那一行:grep -n `[0-9]` file.txt |
| [^list] |
意义:排除中括号内的字符。例如:查找字符串oog,ood,不要oot:grep -n `oo[^t]` fiel.txt |
|
意义:连续n个到m个前一个字符。例如:在g与g之间有2个到3个o的字符串,即goog,gooog:grep -n `go{2,3}g` file.txt |
扩展正则表达式
| RE字符 |
意义与范例 |
| + |
意义:重复一个或一个以上前一个字符。例如:查找god,good,goood字符:egrep -n `go+d` file.txt |
| ? |
意义:重复零个或一个前一个字符。例如:查找gd,god:egrep -n `go?d` file.txt |
| | |
意义:用或(or)的方式找出数个字符串。例如:查找god或good:egrep -n `god|good` file.txt |
| () |
意义:找出组字符串。例如:查找glad或good:egrep -n `g(la|oo)d` file.txt |
| ()+ |
意义:多个重复组的判别。例如:将axyzxyzxyzxyzc用echo输出,然后再使用如下方法查找一下:echo “axyzxzyxzyxyzc”|egrep `a(xyz)+c` |