正则表达式:
缩写是RE,是一种字符模式,用于查找匹配指定的字符(多用于字符串的操作)
元字符和前导字符是什么?
元字符: 就是在正则表达式中具有特殊意义的专用字符,如:. * ?
前导字符: 位于元字符前面的字符,如:ac?
第一类正则表达式
正则中普通常用的元字符
元字符 | 功能 |
---|
.(点) | 匹配除了换行符以外的任意单个字符 |
* | 前导字符出现0次或连续多次 |
.* | 任意长度字符 |
^ | 行首(以…开头) |
$ | 行尾(以…结尾) |
^$) | 空行 |
[] | 匹配包含括号里任意单个字符或一组单个字符 |
[^] | 匹配不包含括号里任意单个字符或一组单个字符 |
^ [] | 匹配以括号里任意单个字符或一组单个字符 开头 |
^ [^] ) | 匹配不以括号里任意单个字符或一组单个字符 开头) |
正则中其他常用的元字符
元字符 | 功能 |
---|
\< | 匹配单词的头 |
\> | 匹配单词的尾 |
\< \> | 精确匹配 |
\{n\} | 匹配前导字符连续出现n次,如 n=2 前导字符连续出现2次 |
\{n,\} | 匹配前导字符至少出现n次) |
\{n,m\) | 匹配前导字符出现在n次到m次之间 |
\( \) | 保存被匹配的字符(第一次出现用\1代替) |
\d | 匹配数字(grep -P) |
\w | 匹配字母数字下划线(grep -P) |
\s | 匹配空格 制表符 换页符(grep -P) |
扩展类正则中常用的元字符
grep 使用扩展正则 必须用 -E 选项或者 egrep
sed 使用扩展正则 必须用 -r 选项
元字符 | 功能 |
---|
+ | 匹配一个或多个 前导字符 |
? | 匹配0个或一个 前导字符 |
| | 或 如:a|b 匹配a或b |
() | 组字符(看成整体) 如:(good|bad)boy: 匹配goodboy或匹配badboy |
{n} | 前导字符重复n次 |
{n,} | 前导字符重复至少n次 |
{n,m} | 前导字符重复n次到m次 |
正则 | 说明 |
---|
/key/ | 查询包含关键字的行 |
/key1/,/key2/ | 匹配包含两个关键字之间的行 |
/key/,x/ | 从匹配关键字的行开始到第X行结束(包含关键字的行) |
X,/key/ | 从第X行开始到与关键字所在行 之间的行 |
x,y!/ | 不包含x到y行 |
/key/!/ | 不包含关键字的行 |
第二类正则表达式