一、正则表达式
正则表达式:元字符 regular expression
[root@localhost lianxi2]# cat sc.html | egrep “.jpg|.png” egrep 支持扩展正则的过滤
<img src=wgyc.png width=“400” >
<img src=luogan.png width=“400” >
<img src=xiayuzhen.jpg width=“400” >
[root@localhost lianxi2]#
元字符:
^ ^在[ ]中起反向选择的作用,早[]外面是以……开头的作用
$ 表示以什么结尾
? 表示前面的字符出现0或者1次
+ 表示前面的字符出现一次以上
* 表示前面,,,,出现0次或者任意次
^$ 代表空行
. 代表任意单个字符
{ } 表示括号前字母出现多少次
()表示一个整体
\ 转义字符
| 或者
\s是指空白
{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。
junjie*
junjie?
^junjie+
^junjie{2,4}
wang$
[root@localhost lianxi2]# cat sc.html | egrep “p>$”
<p>address: hunan.changsha.furong</p>
<p>teacher feng PhoneNO: 18908495097</p>
<p>teacher feng wechat: 18908495097</p>
什么是正则
使用一些特殊符号+数字和字母按照某个规则组合来表示这个意思就是正则表达式
正则用在那里?
查找的场景适合使用正则
还有文本三剑客(awk grep sed)
为什么需要使用它?
查找的场景
[root@localhost lianxi2]# rm -rf wangyutao* 通配符
[root@localhost lianxi2]# echo wangyuuuuuuutaoooooo |egrep “wangyu*”
wangyuuuuuuutaoooooo 元字符
[root@localhost lianxi2]#
python —>爬虫
图片:.jpg .png .gif deng
总结图片的共性问题
写正则表达式就是找规律和共性问题
grep 通用正则表达式分析程序
-i 不区分大小写 ignore case
-n 输出行号
-o 只是显示匹配的内容
-v 取反 invert
-A after 在…之后几行
-B before 在…以前
-C center(中心) context 上下文
-r 文本查找
-E 扩展 extended regexp
egrep = grep -E
[root@VM-12-8-centos lianxi]# cat name.txt |egrep “^[^0-9]”
[^0-9]非数字
^[^0-9] 不是以数字开头的行
[root@VM-12-8-centos ~]# cat name.txt | grep -A2 "lizhuofu"
LIZHUOFU lizhuofu123 12345lizhuofu
xiaomi hauwei
XIAOMI xiaomi11123+2 sc@123.com
--
LIZHUOFU lizhuofu123 12345lizhuofu
xiaomi hauwei
XIAOMI xiaomi11123+2 sc@123.com
[root@VM-12-8-centos ~]