正则表达式

一、定义

Regular Expression, 正则表达式, ⼀种使⽤表达式的⽅式对字符串进⾏匹配的语法规则.我们抓取到的⽹⻚源代码本质上就是⼀个超⻓的字符串, 想从⾥⾯提取内容.⽤正则再合适不过了.正则的优点: 速度快, 效率⾼, 准确性⾼ 正则的缺点: 新⼿上⼿难度有点⼉⾼.不过只要掌握了正则编写的逻辑关系, 写出⼀个提取⻚⾯内容的正则其实并不复杂 正则的语法: 使⽤元字符进⾏排列组合⽤来匹配字符串 在线测试正则表达式https://tool.oschina.net/regex/

二、元字符

具有固定含义的特殊符号 常⽤元字符:

. 匹配除换⾏符以外的任意字符 
\w 匹配字⺟或数字或下划线 
\s 匹配任意的空⽩符 
\d 匹配数字
\n 匹配⼀个换⾏符 
\t 匹配⼀个制表符  
^ 匹配字符串的开始 
$ 匹配字符串的结尾  
\W 匹配⾮字⺟或数字或下划线 
\D 匹配⾮数字 
\S 匹配⾮空⽩符 
a|b 匹配字符a或字符b 
() 匹配括号内的表达式,也表示⼀个组 
[...] 匹配字符组中的字符 
[^...] 匹配除了字符组中字符的所有字符

三、量词

控制前⾯的元字符出现的次数

* 重复零次或更多次
+ 重复⼀次或更多次 
? 重复零次或⼀次 
{n} 重复n次  
{n,} 重复n次或更多次 
{n,m} 重复n到m次

四、贪婪匹配和惰性匹配

.* 贪婪匹配 
.*? 惰性匹配

这两个要着重的说⼀下. 因为我们写爬⾍⽤的最多的就是这个惰性匹配。

先看案例

str: 玩⼉吃鸡游戏, 晚上⼀起上游戏, ⼲嘛呢? 打游戏啊 
reg: 玩⼉.*?游戏  
此时匹配的是: 玩⼉吃鸡游戏  
reg: 玩⼉.*游戏  
此时匹配的是: 玩⼉吃鸡游戏, 晚上⼀起上游戏, ⼲嘛呢? 打游戏    

str: <div>胡辣汤</div> 
reg: <.*> 
结果: <div>胡辣汤</div>   

str: <div>胡辣汤</div> 
reg: <.*?> 
结果: 
<div> </div>  

str: <div>胡辣汤</div><span>饭团</span> 
reg: <div>.*?</div> 
结果: <div>胡辣汤</div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值