【linux】学习笔记Chap_20_regular_expression
正则表达式
Lthero hello Lthero lthero He is lthero he have lthero.cn lthero.cn is the best web
.(dot)
功能:
- 匹配任何字符,除了新的一行,一个dot只代表一个字符
 
例如 lth开头  中间两个任意字符 o结尾
1  | grep 'lth..o' file  | 
可以匹配
lthero lthhho lthwwo ltheeo
^
功能:
- 匹配 一行 以 pattern 开始
 
1  | grep "^lthero" file  | 
$(dollar)
功能:
- 匹配 一行 以pattern 结尾
 
1  | grep "lthero$" file  | 
- 如果结合 ^ $
 
1  | grep "^lthero$" file  | 
\< 以pattern开头
功能:
- 匹配以pattern开始
 
如果只知道要查找的内容以pattern开始
1  | grep "\<kn" file  | 
\> 以pattern结尾
功能:
- 匹配以pattern结尾
 
1  | grep "ow\>" file  | 
- 将上面两个结合
 
1  | grep "\<know\>" file '  | 
则开始精准查找
knows 都不会匹配 只查文章内全部的know。而**^pattern&将匹配pattern独占的行**
- 在Linux中 可以用\b 代替 \<和\>
 
1  | grep "\bknow\b" file  | 
往往用 -w word选项精准查找指定单词
1  | grep -w 'cat' file  | 
[list]
- [list] 匹配list中的字符
 - 如: [0-9] [a-z]
 
1  | grep 'li[cs]en[cs]e' file  | 
- [^list] 匹配不在list中的字符
 - [^0-9] [^a-z]
 - [^a-z]等同[^[:lower:]] 只匹配小写字母
 
[:lower:]
- [:lower:] lowercase letters 范围 a-z,等同[a-z]
 
[:upper:]
- [:upper:] uppercase letters 范围 A-Z 等同[A-Z]
 
[:alpha:]
- [:alpha:] 大小写字母 范围 A-Za-z 等同[A-Za-z]
 
1  | grep '21[:alpha:]' file  | 
[:alnum:]
- 大小写、数字 范围 A-Za-z0-9
 
1  | grep '[a-zA-Z0-9]' file  | 
[:digit:]
- 只有数字 等同 [0-9]
 
1  | grep '[:digit:][0-9]' file  | 
[:blank:]
- 指定空格和tab
 
[:punct:]
- 标点符号
 
综合
1  | grep '[[:upper:][:upper:][:digit:][:lower:]]' file  | 
* zero more
功能:
- 前一个匹配字符出现0次以上 (用这个可能将全文内容都匹配了)
 
前一个匹配字符可能是[a-z] [0-9]等等
1  | grep 'L[a-z]*' file  | 
grep ‘.*’ file 则将匹配任意字符 出现任意次,即:全文
等同于 .{0,}
+ one more
功能:
- + 出现1次以上,+ plus 比*多一次
 
1  | grep 'var[0-9]+' file  | 
等同 {1,}
? zero or one
功能:
- 匹配前一个字符出现1次或0次,如 colou?r u可以有,可以没有
 
等同 {0,1}
{n,m}
- {n} 出现n次
 - {n,}出现n次以上
 - {n,m}出现 n 到 m次
 - {,m}小于m次
 
1  | grep '\<[0-9]{2,3}\>' file  | 
特殊符号
对于特殊符号本身 如 *\
如果想匹配\ 本身 前面再加个\
如 grep ‘\\\*’ file 就是匹配一个\``*
1  | \\\*.*[A-Za-z]+\$  | 
- 
\\ one \ 斜杠
 - 
\* one * 星
 - 
.* 任意字符0次以上
 - 
[A-Za-z]+ 字母一次以上
 - 
\$ 匹配$
 
1  | \*AABBCC22zzzz$  | 
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 lthero!
 评论



