正则表达式
定义
- 定义了用来过滤数据流中的文本的模式模板
正则表达式引擎
-
作用
- 一套底层软件,负责解析正则表达式模式并使用这些模式来进行文本匹配
-
分类
- 基础正则表达式(BRE)
- 拓展正则表达式(ERE)
特殊字符(需转义)
- .*^[]${ }+?|( )
基本正则表达式(结合sed)
-
锚字符
-
锁定在行首
- ^
-
锁定在行尾
- $
-
组合锚点(匹配空行)
- ^$
-
-
点
-
匹配除换行符之外的任意单个字符,包括空格
- .
-
-
字符组
-
匹配包含在字符组内的字符
- [... ]
-
-
排除型字符组
-
不匹配包含在字符组内的字符
- [ ^ ...]
-
-
特殊字符组
-
匹配字母,不管大小写
- [[:alpha:]]
-
匹配0-9的数字
- [[:digit:]]
-
匹配空格和制表符
- [[:blank:]]
-
匹配任意0-9和a-z或A-Z的字符
- [[:alnum:]]
-
....
-
-
区间
-
连续
- [a-zA-Z0-9]
-
非连续
- [a-ch-m]
-
-
星号
-
匹配出现了0次或多次的字符(*左侧的字符)
-
-
组合字符
-
匹配任意数量任意字符
- .*
-
-
拓展正则表达式(结合gawk)
-
问号
-
匹配出现0次或1次的字符
- ?
-
-
加号
-
匹配前面的字符可能出现1次或多次(至少一次)
- +
-
-
花括号(间隔)
-
调整字符或字符集出现的次数
- {m}
- {m,n}
-
-
管道符
-
指定多个匹配模式
- gawk '/A|B/{print $0}'
-
-
分组
-
分组后可当作一个普通字符
- ( )
-
正则表达式实战
-
匹配邮箱
- ^([a-zA-Z0-9_-.+]+)@([a-zA-Z0-9_-.+]+).([a-zA-Z]{2,5})$