【Python】正则表达式(非常详细)

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

正则表达式概述

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(视则)的文本。
正则表达式可以:
(1)测试字符串的某个模式,即数据有效性验证(查找)
(2)实现按照某种规则替换文本
(3)根据模式匹配从字符串中提取一个子字符串(爬虫)
正则表达式的构成: 原子(普通字符,如英文字符)、元字符(有特殊功能的字符)、以及模式修正字符组成。注意:一个正则表达式中至少包含一个原子。
正则表达式测试工具: RegexBuddy

匹配单个字符

字符 功能
. 匹配任意1个字符(除了\n 换行)
[] 匹配[ ]中列举的字符
\d 匹配数字,0-9
\D 匹配非数字,即不是数字
\s 匹配空白,即空格、\t tab键、\n 换行
\S 匹配非空白
\w 匹配单词字符(字母、数字、下划线),即a-z、A-Z、0-9,、_
\W 匹配非单词字符(非字母、非数字、非下划线)

匹配多个字符

字符 功能
* 匹配前一个字符出现0次或者无限次,即可有可无
+ 匹配前一个字符出现1次或者无限次,即至少有1次
? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有
{m} 匹配前一个字符出现m次
{m,n} 匹配前一个字符出现从m到n次,m<n

匹配开头结尾

字符 功能
^ 匹配字符串开头,注意[4-7]和[4-7]的区别
$ 匹配字符串结尾

注意: ^有两个作用
(1)匹配已指定字符开头
(2)用在[]内部,用于取反,如:[^he] 匹配不含有h和e的字符

练习:
1、匹配出,一个字符串第一字母为大写字符,后面都是小写字母并且这些小写字母可有可无:^[A-Z][a-z]*
2、匹配出,变量名是否有效(由字母、数字、下划线组成,不能以数字开头):^[a-zA-Z_]+\w*
3、匹配出,0到99之间的数字:^\d?\d$
4、匹配出,不是以4、7结尾的手机号码(11位):^\d{10}[0-35689]$
5、匹配出,8到20位的密码,可以是大小写英文字母、数字、下划线:^\w{8,20}$
6、匹配出,163的邮箱地址,且@符号之前有4到20位,例如nello@163.com:^\w{4,20}@163\.com$

re模块操作

re模块是python中提供的用于正则操作的模块。
re模块的使用步骤:
导入模块:import re
使用match()方法进行检测:result = re.match('正则表达式', '要验证/检测的字符串’)
判断是否检测/匹配成功:print('匹配成功') if result else print('匹配失败')
取出匹配的具体内容:result.group()

Python正则表达式 从本质上讲,正则表达式就是一种“模式语言”或者“模式描述符”。它使用一套预定义的特殊字符和语法规则,来表示或“匹配”文本中特定的字符组合模式。当我们需要在大量文本中寻找、替换、提取符合特定规律的数据时,手动编写复杂的字符串处理逻辑会变得异常繁琐且容易出错。正则表达式以其高度抽象和表达力,极大地简化了这类任务。它的强大之处在于:举个最简单的例子,如果您想找到文本中所有的电子邮件地址,传统方法可能需要循环遍历字符串,判断字符是否包含和,然后进一步验证其前后的字符是否符合邮箱格式,这会非常复杂。而使用正则表达式 阅读详情

相关推荐

python正则表达式详细

1、re.match()函数和re.search()函数实现字符串的正则匹配。 2、re.sub()函数,用 检索和替换。 3、re.compile()函数。 4、re.compile()供 match() 和 search() 这两个函数的使用。 5、findall()使用。 6、re.finditer()使用。 7、re.split()使用。 8、'(?P...)'分组匹配。 附件1、flags匹配模式规则表。 附件2、pattern正则表达式匹配模式规则表。

Jalen big data analysis的博客 4008

爬虫习(10):python正则表达式大全

文章目录前言正则表达式模块Python中的正则表达式正则表达式函数findall() 函数search() 函数split() 函数sub() 函数元字符列表符号转义符任意符号开始符结束符星号符加号符集合符号或符特殊序列指定字符指定开头结尾匹配中间字符匹配数字匹配非数字空格匹配匹配非空格匹配任意数字和字母匹配任意非数字和字母匹配结尾集合套装指定符范围匹配匹配任意范围内小写字母匹配对象span函数string函数group函数 前言 本篇内容,我是在基础专栏讲过的,为什么在这个专栏拿出来?说明我们爬虫要用到正

全栈川川 1万+

Python:进阶 Python3 正则表达式

Python 中,`re` 模块让我们可以轻松运用正则表达式

Kant2048的博客 1535

Python】【正则表达式】史上最全最详细Python正则表达式(实例解读)

例如,'\x41'匹配'A','\x041'则等价于'\x04'&'1'。例如'\n'匹配一个换行符,'\\'匹配'\','\('匹配'('。例如,'er\b'可以匹配'never'中的'er',但不能匹配'verb'中的'er'。例如,'o{2,}'不能匹配'Bob'中'o',但能匹配'foooood'中的'o'。例如,'o{2}'不能匹配'Bob'中的'o',但可以匹配'food'中的'o'。例如,'[^abc]'可以匹配'plain'中的'p','l','i','n'。匹配不在指定范围内的任意字符。

风云说通信 5235

Python 正则式习笔记

1.  Python正则式的基本用法 1.1基本规则 1.2重复 1.2.1最小匹配与精确匹配 1.3前向界定与后向界定 1.4组的基本知识 2.  re模块的基本函数 2.1使用compile加速 2.2 match和search 2.3 finditer 2.4 字符串的修改与替换 3.  更深入的了解re的组与对象 3.1编译后的Pattern对象 3.2

whycadi的专栏 6万+

python正则表达式

正则表达式 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对 字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。 上面都是官方的说明,通过事先规定好一些特殊字符的匹配规则,然后利用这些字符进行组合来匹配各种复杂的字符串场景。比如现在的爬虫和数据分析,字符串校验等等都需要用到正则表达式来处理数

weixin_51398385的博客 3607

正则表达式python详细介绍

正则表达式是一种用于文本处理的强大工具。它由普通字符与具有特殊含义的 元字符构成,能构建复杂模式。可精准匹配如邮箱、电话等特定文本格式,或 在大量文本里查找特定单词、句子模式,在文本处理、数据挖掘、验证及网页 爬虫等领域广泛运用,助专业人士高效灵活地处理文本任务

2303_81251774的博客 1723

python正则表达式

会使用常见的正则表达式一、 正则表达式基础1.1.概念介绍正则表达式是用于处理字符串的强大工具,它并不是Python的一部分。其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同。它拥有自己独特的语法以及一个独立的处理引擎,在提供了正则表达式语言里,正则表达式的语法都是一样的。下图展示了使用正则表达式进行匹配的流程: 1.2. 数量词的贪婪模式与非贪婪模式正则表达式通常用于在文本中查找匹配的字符串。贪婪模式,总是尝试匹配尽可能多的字符;非贪婪模式则相反,总是尝试匹配尽可能少

阿极的博客 9719

python正则表达式

使用贪婪匹配或非贪婪匹配取决于具体的匹配需求。需要注意的是,非贪婪匹配可能会导致匹配结果不符合预期,因此在使用时需要谨慎评估和调整。通过这些方法和属性,你可以轻松地提取匹配结果中感兴趣的部分,进行进一步的处理和操作。请注意,在使用这些方法之前,确保匹配结果不是 None,即有匹配成功的结果。然而,在某些情况下,我们可能需要非贪婪匹配,也称为最小匹配。在正则表达式中,贪婪匹配和非贪婪匹配是指匹配模式的匹配方式。,贪婪匹配会尽可能匹配更多的字符,结果是整个字符串被匹配为。,贪婪匹配会匹配整个字符串,结果是。

专注于Python编程技术的分享与交流,致力于帮助开发者提升编程技能,解决实际问题,探索Python的无限可能。 4716

Python详细正则表达式

Hello大家好我是,PYmili!今天给大家带来正则表达式的使用教程即匹配规则表格。建议收藏! 介绍 在Python中的re库就是用于正则表达式的标准库。里面包含了正则表达式的所有规则。而且会了正则表达式,可以对爬虫有很大提升!所以,快抓紧起来! 常用的正则表达式匹配规则表格 \w 匹配字母和数字以及下划线 \W 匹配不是字母和数字以及下划线的字符 \s 匹配任意空白字符串,等价于 " \t \n \r \f " \S 匹配任意不是空白的字符串.

PYmili的博客 2583

python正则表达式

正则表达式是进行文本匹配的一种方式,通过正则来匹配到自己需要的内容。和我们用搜索浏览器一样,搜索abc,搜索出来的内容就是包括abc相关的。正则是在一个目标字符串中,搜索到你需要的关键字目标字符串: Youth is not a time of life;正则表达式: life下面这个网站就是可以使用正则来匹配搜索。可以直接用字符串搜索到1、 比如 \bm…e\b2、 \w 匹配字母或数字\b\w\w\w\w\b 代表什么?

ZMXdecode的博客 2411

Python正则表达式

python习过程中,不可避免地需要用到正则表达式,同时,整个软件开发编程过程中,对于正则表达式表达式的使用无处不在,所以,在此总结一下正则表达式的语法及使用样例。正则表达式是一种强大的文本处理工具,Python 的 re 模块提供了丰富的功能来实现正则表达式的应用。通过掌握正则表达式的语法和 re 模块的方法,可以高效地完成文本匹配、提取、替换等任务。

zhfmei的博客 1984

Python爬虫之正则表达式

Python爬虫之正则表达式 文章目录Python爬虫之正则表达式什么是正则表达式正则表达式的特殊字符正则表达式的长用方法分组功能位置匹配贪婪匹配和非贪婪匹配 什么是正则表达式正则表达式是通过一些特殊的符号组成的字符串,这组字符串被称为模板;通过模板然后与目标串进行匹配,将与之相匹配的字符串取出。这就是正则表达式的作用 正则表达式的特殊字符 “ . ”符号可以匹配除换行符意外的任意一个字符 r = re.match(r'a.c', 'a你c').group() print(r) #a你c r

m0_46428072的博客 2104

Python 正则表达式

数据挖掘:从一大堆文本中找到一小堆文本时。如,从文本是寻找email, ip, telephone等。验证:使用正则确认获得的数据是否是期望值。如,email、用户名是否合法等。非必要时慎用正则,如果有更简单的方法匹配,可以不使用正则。

qq_60271706的博客 1298
上一篇: 学习Python的10大刷题网站,练完这些你就遥遥领先!
下一篇: 2023了,编程究竟是金矿还是陷阱?程序员们真的还能轻松致富吗?
田野猫咪
博客等级 码龄3年 5012粉丝 502原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值