网络爬虫——正则表达式语法

网络爬虫——正则表达式语法正则表达式基础讲解一、什么是正则表达式在网络爬虫将网页内容爬取的时候,有一个关键的步骤就是对我们关注的信息进行提取,正则表达式就是用于信息筛选提取的强大工具,并且学习简单,所以建议大家掌握。Python正则表达式语句re.compile(“正则表达式”).findall(“原字符串”)1.匹配符普通字符 正常匹配其中的字符。\n 匹配换行符。\t 匹配制表符。\…

大家好,又见面了,我是你们的朋友全栈君。

正则表达式基础讲解

代码代写(实验报告、论文、小程序制作)服务请加微信:ppz2759

一、什么是正则表达式

在网络爬虫将网页内容爬取的时候,有一个关键的步骤就是对我们关注的信息进行提取,正则表达式就是用于信息筛选提取的强大工具,并且学习简单,所以建议大家掌握。

Python正则表达式语句

import re

re.compile(“正则表达式”).findall(“原字符串”)
//例子:
# job_add_s = '<span class="t3">(.*?)</span>'
# job_add = re.compile(job_add_s, re.S).findall(data)[1:]

1.匹配符

普通字符			正常匹配其中的字符。
\n				匹配换行符。
\t				匹配制表符。
\w				匹配字母、数字、下划线。
\W				匹配除了字母、数字、下划线的字符串。字母大写相当于非(个人总结)
\d				匹配十进制数字
\D				匹配除了十进制数字的字符串
\s				匹配空白字符
\S				匹配非空白字符
[asd213]		匹配中括号中的任意一个字符
[^asd213]		匹配中除了括号中的任意一个字符

实例1

源字符串:"chengxuyuanxiaozhe666"
正则表达式:"xiaozhe"
匹配后:"xiaozhe"

实例2

源字符串:"chengxuyuanxiao
zhe666"
正则表达式:"xiao\nzhe"
匹配后:"xiao\nzhe"

实例3

源字符串:"chengxuyuanxiaozhe666"
正则表达式:"\w\w\w\d\d\d"
匹配后:"zhe666"

实例4

源字符串:"chengxuyuanxiaozhe666"
正则表达式:"xia[asdo]zhe"
匹配后:"xiaozhe"

2.特殊字符

想单纯的使用以下字符,需要在前面加一个\,如$。

.				匹配除换行符 \n 之外的任何单字符。
^				匹配输入字符串的开始位置。
$				匹配输入字符串的结尾位置。 
*				前一个字符出现零次或多次。
+				前一个字符出现一次或多次。
?				前一个字符出现零次或一次。
{ 
   n}				前一个字符恰好出现n次
{ 
   n,}			前一个字符至少出现n次
{ 
   n,m}			前一个字符至少n次,至多m次
|				指明两项之间的一个选择。
()				标记一个子表达式的开始和结束位置。

实例1

源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"xiao..."
匹配后:"xiaozhe"

实例2

源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"^xiaozhe..."//从第一个字母开始匹配
匹配后:None

实例3

源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"^chengxuyuan"
匹配后:"chengxuyuan"

实例4

源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"zuishuai$"//从最后一个字母开始匹配
匹配后:"zuishuai"

实例5

源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"cheng.*"//*前一个字符出现零次或多次。//.匹配除换行符 \n 之外的任何单字符。
匹配后:"chengxuyuanxiaozhe666zuishuai"//默认贪婪尽可能多的匹配

实例6

源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"zhe6+"
匹配后:"zhe666"

实例7

源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"zhe6?"
匹配后:"zhe6"

实例8

源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"zhe6{1,2}"
匹配后:"zhe66"

实例9

源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"^cheng(xu....)"
匹配后:"xuyuan"

3.贪婪模式与懒惰模式

贪婪模式:就是尽可能多的匹配,默认贪婪模式
懒惰模式:就是尽可能少的匹配,也叫精准模式
当出现以下组合时,才代表是懒惰模式:

*?				懒惰模式//?不代表0或1了
+?				懒惰模式//?不代表0或1了

实例1

源字符串:"chengxuyuanxiaozheezhe666zuishuai"
正则表达式:"xiao.*e"
匹配后:"xiaozhezhe"//默认贪婪模式,尽可能多的匹配

实例2

源字符串:"chengxuyuanxiaozhezhe666zuishuai"
正则表达式:"xiao.*?e"
匹配后:"xiaozhe"//懒惰模式,尽可能少的匹配

4.模式修正符

在不改变正则表达式的情况下,通过模式修正符使匹配结果发生改变。
这个看不懂没关系,下面的例子就懂了

re.compile(“正则表达式”).findall(“原字符串”)			//原匹配语句
re.S				//使.也可以匹配换行
re.I				//匹配时候忽略大小写

实例1

源字符串:"XiaoZhe"
正则表达式:"xiao"
匹配语句:re.compile("xiao").findall("XiaoZhe")
匹配后:None

实例2

源字符串:"XiaoZhe"
正则表达式:"xiao"
匹配语句:re.compile("xiao",re.I).findall("XiaoZhe")
匹配后:"Xiao"

实例3

源字符串:"cheng\nxuyuan\nxiao\nzhe"
正则表达式:"cheng.*zhe"
匹配语句:re.compile("cheng.*zhe").findall("XiaoZhe")//.不包括回车
匹配后:None

实例4

源字符串:"cheng\nxuyuan\nxiao\nzhe"
正则表达式:"cheng.*zhe"
匹配语句:re.compile("cheng.*zhe",re.S).findall("XiaoZhe")
匹配后:"cheng\nxuyuan\nxiao\nzhe"

以上就是个人总结的关于正则表达式的知识点,望采纳
除了正则表达式外,我还推荐大家学习另一款XPath表达式,非常简单,比较重要,
XPath表达式在我的另一篇博客有介绍,如果没看到说明还没写完哈
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159786.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SpringBoot+MyBatisPlus+Thymeleaf+AdminLTE增删改查实战

    SpringBoot+MyBatisPlus+Thymeleaf+AdminLTE增删改查实战说明AdminLTE是网络上比较流行的一款Bootstrap模板,包含丰富的样式、组件和插件,非常适用于后端开发人员做后台管理系统。因为最近又做了个后台管理系统,这次就选的是AdminLTE做主题模板发现效果不错,这里我把最核心的SpringBoot如何集成AdminLTE实现增删改查的源码提供出来,需要的朋友可以参考而少走弯路。实现效果技术选型前端:Thymeleaf+Bootstrap+AdminLTE+插件后端:SpringBoot2.0+Mybatis-Plus数据库:

    2022年7月27日
    12
  • Depix 这款去“马赛克“工具效果如何?

    Depix 这款去“马赛克“工具效果如何?最近突然冒出一则新闻,说出了一款开源去“马赛克“工具,三天获Github5000星,火爆网络!这款工具就是depix。出于好奇,去github下载了,文件很小,压缩包才580k,解压后也不到700k,里面的文件是python语言写的,主目录下就一个文件:depix.py,主目录下包含三个目录depixlib(库文件),docs(文档),images(需要用到的图片),如下图:根据depix在github上介绍,该文件目的根本不是去马赛克,而是做密码恢复使用,是对于手机或其他截屏上的类似马赛克

    2022年6月26日
    276
  • wd移动硬盘测试软件,西数硬盘修复工具(WD HDD Repair Tools)「建议收藏」

    WDHDDRepairTools是西部数据(WD)官方发布的一款西数硬盘检测修复工具,它可显示寄存器状态,支持WD-L/WD-ROYL板,能进行硬盘软复位,可识别硬盘,查看或清除SMART,起转电机及直接复位,加载瞬时及永久覆盖,操作磁道、FLASH及模块。改变内存中的磁头位置,编辑列表,设置最高容量及目标容量。格式化硬盘/保留区,校验伺服系统及磁头。清除异常中断代码及软件错误数。重新构…

    2022年4月16日
    894
  • idea2021.7.16激活码(JetBrains全家桶)「建议收藏」

    (idea2021.7.16激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月21日
    51
  • qt开发者论坛_go开发常用框架

    qt开发者论坛_go开发常用框架社区论坛国外论坛:Qt-Centre:http://www.qtcentre.org一个非常全面的外国网站,有forum、wiki、docs、blogs等。Qt-forumhttp://www.qtforum.org比较有名的国际Qt编程论坛。Qt-Appshttp://qt-apps.org可以找到很多免费的Qt应用,获得

    2022年10月2日
    0
  • mongodb的优缺点

    mongodb的优缺点mongodb的优缺点

    2022年4月24日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号