概念
Regular Expression,通常用来检索、替换那些符合某个模式(规则)的文本。
基本正则
常用匹配模式
- ^: 匹配行首
- $ :匹配行尾
- ^$:匹配空行
- < 或者 \b:匹配词首,其后面的任意字符必须是单词词首才匹配
- > 或者\b:匹配词尾,其前面的任意字符必须是单词词尾才匹配
- \B:匹配非单词边界,与\b相反
- [ ] : 匹配范围内的任意单个字符,例:[0-9] 匹配任意单个数字,[a-zA-Z] 匹配任意单个字母
- [^ ]:匹配非范围内的任意单个字符,例:[^0-9]匹配任意单个非数字
- [[:alpha:]]:匹配任意字符,等价[a-zA-Z]
- [[:lower:]]:匹配任意单个小写字母,等价[a-z]
- [[:upper:]]:匹配任意单个大写字母,等价[A-Z]
- [[:digit:]] : 匹配任意单个数字,等价[0-9] 或perl模式正则 -P \d
- \s: perl模式,匹配任意单个空白字符
- \S:perl模式,匹配任意当非空白字符
连续匹配
- *:前面的字符出现任意次数,包括0次
- .:表示任意单个字符
- .*:表示任意长度的任意字符
- \?:前面的字符匹配0次或者1次
- \+:前面的字符匹配至少1次
-\ {n,m\}:前面的字符匹配次数为n~m次
分组和后向引用
- \( \):表示分组,可以嵌套使用
- \(abc\):表示将abc当成一个整体使用,\(abc\)\{2\} 匹配abcabc
- \1 表示分组1匹配到的结果,awk '\(abc\)\{2\} 11 \1' 匹配 abcabc 11 abcabc
扩展正则
- 基础正则中 \( \),\{ \},\?,\+,去掉反斜杠后,即为扩展正则的使用方法
网友评论