鱼C论坛

 找回密码
 立即注册
查看: 1005|回复: 5

[已解决]关于正则表达式

[复制链接]
发表于 2020-7-5 13:55:03 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> p = re.compile('\bclass\b')
>>> print(p.search('no class at all'))
None
不明白为何是这个结果
'\bclass\b'我理解的是相当于'clas'
求解
最佳答案
2020-7-5 14:23:01
tiger吴 发表于 2020-7-5 14:16
不懂搜索结果为何是None
re.search('\bclass\b','no class at all')
相当于re.search('clas','no class ...




因为匹配过程 \b 也需要匹配  只是我们看的时候是不可见的字符 \b ,爬虫也经常有这样的,在网页源码中各种 \t \n

你想匹配到的话,匹配字符也需要对应有 \b:
import re
str0 = 'no \bclass\b at all'
print(re.search('\bclass\b',str0))

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-5 13:56:38 | 显示全部楼层
本帖最后由 Twilight6 于 2020-7-5 13:59 编辑



  \b 退格符   相当于键盘上的 Backspace 键

所以 '\bclass\b' 相对于在开始时候按一次 Backspace  在结尾再次按一次 Backspace  

结果就为 'clas' 了~
>>> print('我太丑\b帅了')
我太帅了
比如这个例子,就相对于 \b 把丑字删了,果然,这个输出结果我很满意

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-5 14:16:14 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2020-7-5 13:56
\b 退格符   相当于键盘上的 Backspace 键

所以 '\bclass\b' 相对于在开始时候按一次 Backspace   ...

不懂搜索结果为何是None
re.search('\bclass\b','no class at all')
相当于re.search('clas','no class at all')?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-5 14:23:01 | 显示全部楼层    本楼为最佳答案   
tiger吴 发表于 2020-7-5 14:16
不懂搜索结果为何是None
re.search('\bclass\b','no class at all')
相当于re.search('clas','no class ...




因为匹配过程 \b 也需要匹配  只是我们看的时候是不可见的字符 \b ,爬虫也经常有这样的,在网页源码中各种 \t \n

你想匹配到的话,匹配字符也需要对应有 \b:
import re
str0 = 'no \bclass\b at all'
print(re.search('\bclass\b',str0))

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-5 14:55:49 | 显示全部楼层
需要用原字符串,r'\bclass\b'
>>> p=re.compile(r'\bclass\b')
>>> print(p.search('no class at all'))
<re.Match object; span=(3, 8), match='class'>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-5 14:59:40 From FishC Mobile | 显示全部楼层
sunrise085 发表于 2020-7-5 14:55
需要用原字符串,r'\bclass\b'

嗯,故意不放的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 03:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表