为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第1天 Scrapy打造搜索引擎 正则表达式第一讲

标签:
爬虫

课程名称:Scrapy打造搜索引擎(分布式爬虫)

课程章节: 爬虫基础知识回顾

主讲老师:bobby

课程内容:

今天学习的内容包括:

Python正则表达式——re正则表达式库  re.match(pattern,string)—pattern模板字符串string待匹配字符串


课程收获:

match()函数表示匹配

^m必须以m为开头

.任意字符.*匹配任意字符任意多次

3$必须以3为结尾

?非贪婪匹配

+至少匹配一次例如:b+b字符出现一次

{2}某个字符出现2次  {2,}某个字符至少出现2次  {2,5}某个字符出现2<=且<=5

| 或关系"(bobby|bobby123)"表示字符可以匹配bobby或者bobby123

[abcd] 表示字符为[]中任意一个字符都可以

          例如:boobby123如果为:[qwer]oobby123则匹配失败

[0-9] 0到9之间的数字匹配一次(区间匹配)

[^1] 字符不等于1

\s 匹配空格   \S 匹配非空格

\w 相当于[A-Z a-z 0-9_汉字]    \W 表示非\w(非字母非数字非_非汉字)

[\u4E00-\u9FA5]匹配汉字

\d数字

import re

line = "ming123"  # 待匹配字符串

# 判断某个字符串是不是等于line
if line == "ming123":
    print("匹配成功1")

# ^m必须以m为开头   .任意字符   *前面字符可以匹配任意多遍(.*表示匹配任意字符任意多次)
regex_str1 = "^m.*"  # 以m为开头,后面为任意多个字符都可以
if re.match(regex_str1, line):
    print("正则匹配成功1")

# 3$必须以3为结尾
regex_str2 = ".*3$"
if re.match(regex_str2, line):
    print("正则匹配成功2")

# ? 非贪婪匹配(贪婪匹配即从最右边开始匹配)
line = "boooobby123"
regex_str3 = ".*(b.*b).*"
# ()表示期望匹配的子串(正则表达式会将符合要求的字符串放至括号内)
# 希望匹配出:boooob  结果匹配出:bb(贪婪匹配的结果)
match_obj = re.match(regex_str3, line)
if match_obj:
    print("贪婪匹配:"+match_obj.group(1))
# 期望结果:boooob  实际结果:boooobb(原因:第一个b非贪婪匹配,但是匹配第二个b的时候还是贪婪匹配)
regex_str3 = ".*?(b.*b).*"
match_obj = re.match(regex_str3, line)
if match_obj:
    print("贪婪匹配:"+match_obj.group(1))
# 期望结果:boooob  实际结果:boooob(两个b都是非贪婪匹配)
regex_str3 = ".*?(b.*?b).*"
match_obj = re.match(regex_str3, line)
if match_obj:
    print("非贪婪匹配:"+match_obj.group(1))

https://img1.sycdn.imooc.com//62ec7b810001e09714640974.jpg

https://img1.sycdn.imooc.com//62ec7b8a0001d48d14630653.jpg

https://img1.sycdn.imooc.com//62ec7ba5000187dc14651007.jpg

https://img1.sycdn.imooc.com//62ec7bbf0001596414630893.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消