
【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结尾
grep 'lth..o' file可以匹配
lthero lthhho lthwwo ltheeo
^
功能:
- 匹配 一行 以 pattern 开始
grep "^lthero" file
#结果
lthero
lthero.cn is the best web$(dollar)
功能:
- 匹配 一行 以pattern 结尾
grep "lthero$" file
#结果
lthero
He is lthero- 如果结合 ^ $
grep "^lthero$" file
#则匹配 pattern独占的行,以lthero开头,以lthero结尾
#结果
lthero
grep "^$" file 可以匹配所有空行\< 以pattern开头
功能:
- 匹配以pattern开始
如果只知道要查找的内容以pattern开始
grep "\<kn" file
#结果
know\> 以pattern结尾
功能:
- 匹配以pattern结尾
grep "ow\>" file
#结果
know- 将上面两个结合
grep "\<know\>" file '则开始精准查找
knows 都不会匹配 只查文章内全部的know。而**^pattern&将匹配pattern独占的行**
- 在Linux中 可以用\b 代替 \<和\>
grep "\bknow\b" file
grep "\<know\>" file往往用 -w word选项精准查找指定单词
grep -w 'cat' file[list]
- [list] 匹配list中的字符
- 如: [0-9] [a-z]
grep 'li[cs]en[cs]e' file
#结果
licence license lisense lisence- [^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]
grep '21[:alpha:]' file
#查找21开始,带有一个字母(不分大小写)
21a 21b 21C ....[:alnum:]
- 大小写、数字 范围 A-Za-z0-9
grep '[a-zA-Z0-9]' file
#查看
A a 8 单个字母或数据即可[:digit:]
- 只有数字 等同 [0-9]
grep '[:digit:][0-9]' file
#查看00----99[:blank:]
- 指定空格和tab
[:punct:]
- 标点符号
综合
grep '[[:upper:][:upper:][:digit:][:lower:]]' file
#在file中找 符合 大写&大写&数字&小写 内容
LT5e* zero more
功能:
- 前一个匹配字符出现0次以上 (用这个可能将全文内容都匹配了)
前一个匹配字符可能是[a-z] [0-9]等等
grep 'L[a-z]*' file
#可能匹配到
L Lt Lth Lthe Lther Ltherogrep ‘.*’ file 则将匹配任意字符 出现任意次,即:全文
等同于 .{0,}
+ one more
功能:
- + 出现1次以上,+ plus 比*多一次
grep 'var[0-9]+' file
#可以匹配到
thing var1等同 {1,}
? zero or one
功能:
- 匹配前一个字符出现1次或0次,如 colou?r u可以有,可以没有
等同 {0,1}
{n,m}
- {n} 出现n次
- {n,}出现n次以上
- {n,m}出现 n 到 m次
- {,m}小于m次
grep '\<[0-9]{2,3}\>' file
#表示匹配一个二或三位数字
03 123 000特殊符号
对于特殊符号本身 如 *\
如果想匹配\ 本身 前面再加个\
如 grep ‘\\\*’ file 就是匹配一个\``*
\\\*.*[A-Za-z]+\$- \\ one \ 斜杠
- \* one * 星
- .* 任意字符0次以上
- [A-Za-z]+ 字母一次以上
- \$ 匹配$
\*AABBCC22zzzz$- 文章作者:
- Lthero博客
- 版权声明:
- 本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议。转载请注明来自 Lthero博客!





