python3 爬虫相关学习10:RE库(regular experssion)正则表达式学习

news/2024/9/18 3:38:54/

目录

1 关于:re / regex / regular expression 

1.1 什么是正则表达式

1.2 在python中导入 re

1.3 查看regex相关信息

2 符号意义2.1 行定位符

2.2 元字符 (注意是 反斜杠\)

2.3 限定符号

2.4 字符类,字符集合 需要 中括号[]

2.5 排除字符   [^ ]

2.6 选择字符 |

2.7 转义字符 反斜杠 \

2.8 分组符号  ()

2.9 正则表达式需要用   " " 引号,但是要小心各种特殊符号

3  正则表达式的方法


1 关于:re / regex / regular expression 

1.1 什么是正则表达式

  • regular expression 正则表达式
  • 是计算机科学的一个概念
  • 是一个跨多种编程语言的语言格式

1.2 在python中导入 re

  • 导入 re 模块 
  • 模块其实可以认为是一个  .py文件
  • 错误写法: import re
  • 正确写法:    import regex

1.3 查看regex相关信息

  • pip list
  • pip show regex

 

2 符号意义
2.1 行定位符

用来描述字符串的边界,1行的边界?全部字符串的边界把? 可以叫做 字符串整体定位符?^ ^

^       #表示字符串开头

$      #表示字符串结尾

2.2 元字符 (注意是 反斜杠\)

\w   #匹配 字母,数字,下划线等,还有各自文字,比如汉字

\W   #^w 非w

\s     # 匹配空格,换行,tab 等几种看不见的内容

\S    #^s 非s

\b    #begin 单词的开始的意思  如 \bw 匹配单词(不是整个字符串)开始的字母,数字,下划线等,所以  \b不同于 ^

\d     # 匹配数字

.      #  任意字符

三种括号也是有特殊意义的

()    #(fruit|food)s 表示 fruits|foods

[]

{}

2.3 限定符号

*         # 匹配前面的字符0次/无限次

+        # 匹配前面的字符1次/无限次   

?        # 匹配前面的字符0次/1次

{n}      # 匹配前面的字符n次

{n,}     # 匹配前面的字符至少n次

{n,m}  # 匹配前面的字符 最少n次,最多m次, n-m次之间的都符合

e.g

^/d{8}     #匹配8个数字

.*s          #非贪婪匹配任意个数字

2.4 字符类,字符集合 需要 中括号[]

[abcd]                      # 匹配abcd中的任意一个都可以

[12345]                    # 匹配1-5中的任意一个都可以

[0-9]                         # 匹配任意一个数字,等同于\d

[a-z0-9A-Z]              # 匹配所有英文字母,数字,几乎等同\w 是\w的子集(不含汉字等)

2.5 排除字符   [^ ]

关键字 ^

/W                   # 相当于/^w,但是写法不对,必须写在中括号里 [^]  写在外面还是表示字符串开始

[^a-zA-Z]         # 相当于非英文字母以外的其他任意字符

2.6 选择字符 |

选择

条件选择   | 表示or的意思

e.g.

^\d{5}|^\d{6}

2.7 转义字符 反斜杠 \

  • 转义字符
  1. 把 普通字符变成特殊意义的字符, n 转成 \n 换行符
  2. 把 特殊字符变成普通字符,   \* 表示 普通字符 *    \. 表示 普通字符 .

2.8 分组符号  ()

(fruit|food)s                 #表示 fruits|foods

([abc]{1,3}){3}             #表示 [abc]1到3个,然后再来3个,一会试试

2.9 正则表达式需要用   " " 引号,但是要小心各种特殊符号

  • 比如一般的
  • ".*?"

  • 实际使用时, 如果包含特殊符号,记得使用 r (rawdata)
  • r"https://movie.douban.com"


 

3  正则表达式的方法

re.match()

re.search()

re.find()

re.findall()

next

re.finditer

re.compile()

re.split


http://www.ppmy.cn/news/400094.html

相关文章

常用jar使用杂记

dom4j dom4j的xpath表达式,除了//外都必须从根节点开始写。 hibernate bag不允许多个平行集合且更新性能低 a different object with the same identifier value was already associated with the session错误 session中有多个同类型对象,地址不一样…

[Swift 开发] @MainActor 自动主线程更新UI

DispatchQueue.main.async 在Swift中编写异步代码时,你可能会遇到一些并发性和线程安全性的问题 例如刷新UI需要在主线程,在Swift 5.5之前我们都是使用手动来刷新主线程,这样既麻烦又容易遗漏 DispatchQueue.global().async {// 在后台线程…

机械硬盘计算机管理,机械硬盘怎么分区

最近有小伙伴想对电脑进行整理,对内存进行分区,但是不知道如何操作。接下来小编来教大家如何对机械硬盘进行分区吧。 首先在Windows界面下就可以用系统自带工具进行分区。单击“开始”按钮,并右键单击“开始”菜单中的“计算机”选项&#xf…

mysql垂直分区和水平分区

数据库扩展大概分为以下几个步骤: 1、读写分离:当数据库访问量还不是很大的时候,我们可以适当增加服务器,数据库主从复制的方式将读写分离; 2、垂直分区:当写入操作一旦增加的时候,那么主从数据…

Linux 磁盘管理-分区管理-磁盘分区【gdisk】gpt分区工具使用介绍

gdisk -l [设备] gdisk又叫GPT fdisk,算是fdisk的延伸吧,主要使用的是GPT分区类型,用来划分容量大于2T的硬盘。 扩展1:分区类型GPT和MBR。GPT最大支持18EB(1EB1024PB,1PB1024TB),MBR…

MySQL表分区

学到这儿,边学边测,简要记录一下,以下代码都在mysql8.0下实测过。 关于分区以及为什么要分区水平分区的几种类型及demo1.range分区2.list分区3.hash分区3.1.常规hash3.2.线性hash 4.key分区5.子分区(复合分区)6.columns分区 关于分区以及为什…

【P12】TL431可调正负直流双电源线性稳压电路

可调正负双电源线性稳压一般使用 317/337 集成稳压芯片,我常用安森美的,因为在我用过的芯片中最稳定,对于一些电压比较低的操作,很多厂商也都有不同的芯片。 使用 TL431做线性稳压也不是出于别的目的,首先是我在项目中…

Python+Appium实现自动化测试的使用步骤

这篇文章主要介绍了PythonAppium实现自动化测试的使用步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 一、环境准备 1.脚本语言:Python3.x IDE&am…

【跑实验02】如何提取名称相同的部分,比如obj365_train_000000000002.xml,换成相应的坐标格式

文章目录 一、问题的提出二、问题的解决2.1 解决问题2.2 把bboxes写入txt文件中 一、问题的提出 我有一个文件格式如下所示: obj365_train_000000000002.xml: 236, 41, 263, 180 obj365_train_000000000002.xml: 218, 174, 248, 207 obj365_train_000000000002.xm…

【安卓开发——Dart语法讲解】

文章目录 Dart语法详解1. 入口方法2. Dart变量3. Dart的命名规则4. Dart 常量5. 数据类型5.1 数值类型5.1.3 运算符5.2 字符串类型5.3 布尔类型5.4 List集合类型5.4.1 第一种定义List的方式5.4.2 第二种定义List的方式5.4.3 指定list的类型 5.5 Maps类型5.5.1 第一种定义方式5.…

JavaScript 鼠标事件、图片跟随鼠标移动。键盘事件

鼠标事件对象 event 对象代表事件的状态 跟事件相关的一系列信息的集合 现阶段 我们主要是用 鼠标事件对象 mouseEvent 和键盘事件对象KeyboardEvent 图片跟随鼠标移动 <body><img src"images/h_h.jpg" alt""><!-- <img src"im…

Android软键盘弹出导致页面背景图片上移问题

1、期望的效果&#xff1a; 输入法弹起时&#xff0c;背景图不要向上移动或压缩输入法弹起时&#xff0c;不要遮挡输入框&#xff0c;输入框可以向上移动&#xff1b; 2、实现方式&#xff1a; 1、在AndroidManifest.xml 中设置对应Activity的输入法模式&#xff1a; andro…

[C#]键盘↑↓←→控制图片加速移动

想做简单游戏的同学们可以学习一下。 [C#]键盘控制图片移动(10秒) 源码 using System; using System.Drawing; using System.Windows.Forms;namespace 键盘控制移动CS {public partial class Form1 : Form {public Form1() {InitializeComponent();}int 左右;int 上下;double …

pygame--图片随键盘移动

练习pygame 以下代码为&#xff1a;制作贪吃蛇游戏的练习作业&#xff0c;图片随着键盘的上下左右而相应的移动 import pygame# 定义画布的大小 W 900 H 700 size (W, H) back (255, 255, 255) # 背景色 screen pygame.display.set_mode(size) # 创建一个窗口 pygame…

移动端h5页面软键盘弹出后 背景图片被顶上去

移动端h5页面在软键盘弹出后&#xff0c;body的高度被压缩了&#xff0c;就导致原本高度100%的背景图被顶上去一截&#xff0c;需要把div的高度强行设回100%才能解决这个问题 <div class"app" :style"{ height: bodyHeight px }"></div>moun…

判断键盘图片

有时候不想输入键盘图片怎么办&#xff1f; //判断是否是键盘图片 (BOOL)isContainsEmoji:(NSString *)string { __block BOOL isEomji NO; [string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequences us…

键盘快捷键示意图制作

键盘快捷键示意图制作 图片制作使用软件&#xff1a;http://www.keyboard-layout-editor.com/#/ 我制作的office快捷键示意图 &#xff08;如果有人找到做下图的软件&#xff0c;地址可否告诉我&#xff01;&#xff09; 与上上图相比&#xff0c;上图还是比较的好看&#xf…

键盘扫描码大全

键盘扫描码 作者&#xff1a; ~江湖猎人~ 来源&#xff1a; 博客园 发布时间&#xff1a;2009-08-30 11:28 阅读&#xff1a;279 次 原文链接 [收藏] //以下是一个检测按键扫描码的程序 &#xff03;i nclude <bios.h>&#xff03;i nclude <stdlib.h>&am…

Qt键盘事件实现图片在窗口上下左右移动

Qt键盘事件实现图片在窗口上下左右移动 标签&#xff08;空格分隔&#xff09;&#xff1a; 键盘事件 一、项目内容&#xff1a; 新建桌面应用程序testKeyEvent&#xff0c;类名KeyEvent,基类QWidget,通过重写键盘事件到达操作的键盘的时候窗口中的图片上下左右移动&#xff…

7-python库之-pyautogui鼠标键盘控制、图片位置查找

还是在自动化上面的应用&#xff0c;对于web的测试可以使用selenium来获取元素&#xff0c;进行按键控制或者文字输入&#xff0c;模拟用户操作实现自动化。可是对于非web的win桌面应用&#xff0c;我们就没办法了&#xff0c;这时候就需要向按键精灵那样&#xff0c;去查找对应…