1、正则表达式是什么?
用于查找过程中匹配指定字符
支持的程序:find vim grep sed awk
2、正则表达式是能干什么?
1、匹配邮箱,匹配身份证号、手机号、银行卡号
2、匹配某些特定字符串,做特定处理等等
3、正则当中的名词解释
·元字符
指那些在正则表达式中具有特殊意义的专属字符,如:点(.)星(*)问号(?)等
·前导字符
位于元字符前的字符。
4、第一类正则表达式
普通常用的元字符
元字符 | 功能 | 备注 |
. | 匹配除换行符意外的任意字符 | |
* | 前导字符出现0次或多次 | |
.* | 任意长度字符 | ab.* |
^ | 行首(以…开头) | ^root |
$ | 行尾(以…结尾) | bash$ |
^$ | 空行 | |
[] | 匹配括号里任意单个字符或一组单个字符 | [abc] |
[^] | 匹配不包含括号里任意单个字符或一组单个字符 | [^abc] |
^[] | 匹配一括号里任意单个字符或一组单个字符开头 | ^[abc] |
^[^] | 匹配不以括号内单个字符或一组单个字符开头 | ^[^abc] |
grep 按行查询
常用的其他元字符
元字符 | 功能 | 备注 |
\< | 取单词的头 | \<head |
\> | 取单词的尾 | end\> |
\< \> | 精确匹配 | |
\{n\} | 匹配前导字符连续出现n次 | |
\{n,\} | 匹配前导字符至少出现n次 | |
\{n,m\} | 匹配前导字符出现n次到m次 | |
\( \) | 保存被匹配的字符 | |
\d | 匹配数字(grep -P) | [0-9] |
\w | 匹配字母数字下划线(grep -P) | [a-zA-z0-9_] |
\s | 匹配空格、指标符、换页符(grep -P) | [\t\r\n] |
\是转义字符
扩展正则常用字符
我很特殊,你得信不然我错给你看
·grep 你要用我,必须加-E或者让你兄弟egrep来找我
·sed 你要用我,必须加-r
扩展元字符 | 功能 | 备注 |
+ | 匹配一个或多个前导字符 | bo+匹配boo,bo |
? | 匹配0个或一个前导字符 | bo?匹配b,b0 |
| | 或 | 匹配a或b |
() | 组字符(看成整体) | (my|your)self:表示匹配myself或匹配yourself |
{n} | 前导字符重复n次 | |
{n,} | 前导字符重复至少n次 | |
{n,m} | 前导字符重复n到m次 |
第二类正则
总结