前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网络爬虫——正则表达式语法

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

作者头像
全栈程序员站长
发布2022-09-14 11:28:07
6220
发布2022-09-14 11:28:07
举报
文章被收录于专栏:全栈程序员必看

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

正则表达式基础讲解

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

一、什么是正则表达式

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

Python正则表达式语句

代码语言:javascript
复制
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.匹配符

代码语言:javascript
复制
普通字符			正常匹配其中的字符。
\n				匹配换行符。
\t				匹配制表符。
\w				匹配字母、数字、下划线。
\W				匹配除了字母、数字、下划线的字符串。字母大写相当于非(个人总结)
\d				匹配十进制数字
\D				匹配除了十进制数字的字符串
\s				匹配空白字符
\S				匹配非空白字符
[asd213]		匹配中括号中的任意一个字符
[^asd213]		匹配中除了括号中的任意一个字符
实例1
代码语言:javascript
复制
源字符串:"chengxuyuanxiaozhe666"
正则表达式:"xiaozhe"
匹配后:"xiaozhe"
实例2
代码语言:javascript
复制
源字符串:"chengxuyuanxiao
zhe666"
正则表达式:"xiao\nzhe"
匹配后:"xiao\nzhe"
实例3
代码语言:javascript
复制
源字符串:"chengxuyuanxiaozhe666"
正则表达式:"\w\w\w\d\d\d"
匹配后:"zhe666"
实例4
代码语言:javascript
复制
源字符串:"chengxuyuanxiaozhe666"
正则表达式:"xia[asdo]zhe"
匹配后:"xiaozhe"

2.特殊字符

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

代码语言:javascript
复制
.				匹配除换行符 \n 之外的任何单字符。
^				匹配输入字符串的开始位置。
$				匹配输入字符串的结尾位置。 
*				前一个字符出现零次或多次。
+				前一个字符出现一次或多次。
?				前一个字符出现零次或一次。
{ 
   n}				前一个字符恰好出现n次
{ 
   n,}			前一个字符至少出现n次
{ 
   n,m}			前一个字符至少n次,至多m次
|				指明两项之间的一个选择。
()				标记一个子表达式的开始和结束位置。
实例1
代码语言:javascript
复制
源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"xiao..."
匹配后:"xiaozhe"
实例2
代码语言:javascript
复制
源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"^xiaozhe..."//从第一个字母开始匹配
匹配后:None
实例3
代码语言:javascript
复制
源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"^chengxuyuan"
匹配后:"chengxuyuan"
实例4
代码语言:javascript
复制
源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"zuishuai$"//从最后一个字母开始匹配
匹配后:"zuishuai"
实例5
代码语言:javascript
复制
源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"cheng.*"//*前一个字符出现零次或多次。//.匹配除换行符 \n 之外的任何单字符。
匹配后:"chengxuyuanxiaozhe666zuishuai"//默认贪婪尽可能多的匹配
实例6
代码语言:javascript
复制
源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"zhe6+"
匹配后:"zhe666"
实例7
代码语言:javascript
复制
源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"zhe6?"
匹配后:"zhe6"
实例8
代码语言:javascript
复制
源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"zhe6{1,2}"
匹配后:"zhe66"
实例9
代码语言:javascript
复制
源字符串:"chengxuyuanxiaozhe666zuishuai"
正则表达式:"^cheng(xu....)"
匹配后:"xuyuan"

3.贪婪模式与懒惰模式

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

代码语言:javascript
复制
*?				懒惰模式//?不代表0或1了
+?				懒惰模式//?不代表0或1了
实例1
代码语言:javascript
复制
源字符串:"chengxuyuanxiaozheezhe666zuishuai"
正则表达式:"xiao.*e"
匹配后:"xiaozhezhe"//默认贪婪模式,尽可能多的匹配
实例2
代码语言:javascript
复制
源字符串:"chengxuyuanxiaozhezhe666zuishuai"
正则表达式:"xiao.*?e"
匹配后:"xiaozhe"//懒惰模式,尽可能少的匹配

4.模式修正符

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

代码语言:javascript
复制
re.compile(“正则表达式”).findall(“原字符串”)			//原匹配语句
re.S				//使.也可以匹配换行
re.I				//匹配时候忽略大小写
实例1
代码语言:javascript
复制
源字符串:"XiaoZhe"
正则表达式:"xiao"
匹配语句:re.compile("xiao").findall("XiaoZhe")
匹配后:None
实例2
代码语言:javascript
复制
源字符串:"XiaoZhe"
正则表达式:"xiao"
匹配语句:re.compile("xiao",re.I).findall("XiaoZhe")
匹配后:"Xiao"
实例3
代码语言:javascript
复制
源字符串:"cheng\nxuyuan\nxiao\nzhe"
正则表达式:"cheng.*zhe"
匹配语句:re.compile("cheng.*zhe").findall("XiaoZhe")//.不包括回车
匹配后:None
实例4
代码语言:javascript
复制
源字符串:"cheng\nxuyuan\nxiao\nzhe"
正则表达式:"cheng.*zhe"
匹配语句:re.compile("cheng.*zhe",re.S).findall("XiaoZhe")
匹配后:"cheng\nxuyuan\nxiao\nzhe"

以上就是个人总结的关于正则表达式的知识点,望采纳 除了正则表达式外,我还推荐大家学习另一款XPath表达式,非常简单,比较重要,

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正则表达式基础讲解
    • 一、什么是正则表达式
      • Python正则表达式语句
      • 1.匹配符
      • 2.特殊字符
      • 3.贪婪模式与懒惰模式
      • 4.模式修正符
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档