基本正则表达式支持的功能有限,但是大多数情况都可以能简单使用;
!!! 支持 POSIX字符类(正则表达式都支持,不管是 BRE、ERE 还是 PERE)
基本组成部分(可用的)
\ # 转移字符,对特殊值进行转换,防止出现语义歧义
^ # 匹配行首
$ # 匹配行尾
. # 匹配除了 \n 之外的任意字符
[] # 匹配括号中的任意一个字符
[^]# 匹配不在括号中的任意一个字符
[-]# 匹配在括号范围内的字符,需要写成递增的方式
* # 匹配之前项的 0 次或者多个
元字符(可用的)
\b # 匹配单词边界,匹配的位置是一个空格或者区分单词的字符
\B # 匹配非单词编辑,匹配中对应的位置不是空格或者分割单词的字符, cool\B, 匹配 coolean,但是不匹配 cool
\w # 匹配单个单词(字母,数字,_)
\W # 匹配单个非单词字符
示例
- 字符关键词
> cat test.txt
me is yous
123 you are 456 oi
122
1222
1223
122456 this is none
> grep '122' test.txt
122
1222
1223
122456 this is none # 匹配有 122 的关键词
- \b
> cat test.txt
me is yous
123 you are 456 oi
122
1222
1223
122456 this is none
> grep '122\b' test.txt
122 # 只会匹配 122,122 后面就是单词结束了
- \B
> cat test.txt
me is yous
123 you are 456 oi
122
1222
1223
122456 this is none
> grep '122\B' test.txt
1222
1223
122456 this is none # 不会匹配 122,因为 122 后面是空格,单词的结束了
网友评论