【python养成】:re模块正则表达式详解

文章目录


前言

一、正则表达式是什么?

二、正则表达式基本语法

三、re模块主要函数

总结


前言

        谢谢大家的关注!我之前做了一些网络爬虫的项目,项目里涉及到了正则表达式的用法,相信大家要是用Python做网络爬虫或者大数据分析必然脱不开正则表达式的使用!这篇文章针对Python的正则表达式做详细的解释,希望文章能对初学者有所帮助,本文章参考书籍例程。


一、正则表达式是什么?

        正则表达式是字符串处理的有力工具和技术,是使用某种预定义的模式去匹配一类具有共同特征的字符串,主要用于处理字符串,可以快速、准确地完成复杂的查找和替换等处理要求,在文本编辑与处理、大数据分析、网络爬虫的场合有重要用途!

        正则表达式主要是使用 Python中的  re模块

二、正则表达式基本语法

元字符

功能说明

.

匹配除换行符以外的任意单个字符

*

匹配位于*之前的字符或子模式的0次或多次出现

+

匹配位于+之前的字符或子模式的1次或多次出现

-

[]之内用来表示范围

|

匹配位于|之前或之后的字符

^

匹配行首,匹配以^后面的字符开头的字符串

$

匹配行尾,匹配以$之前的字符结束的字符串

?

匹配位于?之前的0个或1个字符。当此字符紧随任何其他限定符(*+?{n}{n,}{n,m})之后时,匹配模式是“非贪心的”。“非贪心的”模式匹配搜索到的、尽可能短的字符串,而默认的“贪心的”模式匹配搜索到的、尽可能长的字符串。例如,在字符串“oooo中,“o+?”只匹配单个“o”,而“o+”匹配所有“o”

\

表示位于\之后的为转义字符

\num

此处的num是一个正整数,表示子模式编号。

例如,“(.)\1”匹配两个连续的相同字符

\f

换页符匹配

\n

换行符匹配

\r

匹配一个回车符

\b

匹配单词头或单词尾

\B

\b含义相反

\d

匹配任何数字,相当于[0-9]

\D

\d含义相反,等效于[^0-9]

\s

匹配任何空白字符,包括空格、制表符、换页符,与 [ \f\n\r\t\v] 等效

\S

\s含义相反

\w

匹配任何字母、数字以及下划线,相当于[a-zA-Z0-9_]

\W

\w含义相反\w含义相反,与“[^A-Za-z0-9_]”等效

()

将位于()内的内容作为一个整体来对待

{m,n}

{}前的字符或子模式重复至少m次,至多n

[]

表示范围,匹配位于[]中的任意一个字符

[^xyz]

反向字符集,匹配除xyz之外的任何字符

[a-z]

字符范围,匹配指定范围内的任何字符

[^a-z]

反向范围字符,匹配除小写英文字母之外的任何字符

三、re模块主要函数

方法

功能说明

compile(pattern[, flags])

创建正则表达式对象

escape(string)

将字符串中所有特殊正则表达式字符转义

findall(pattern, string[, flags])

返回包含字符串中所有与给定模式匹配的项的列表

finditer(pattern, string, flags=0)

返回包含所有匹配项的迭代对象,其中每个匹配项都是Match对象

fullmatch(pattern, string, flags=0)

尝试把模式作用于整个字符串,返回Match对象None

match(pattern, string[, flags])

从字符串的开始处匹配模式,返回Match对象None

purge()

清空正则表达式缓存

search(pattern, string[, flags])

整个字符串中寻找模式,返回Match对象None

split(pattern, string[, maxsplit=0])

根据模式匹配项分隔字符串

sub(pat, repl, string[, count=0])

将字符串中所有与pat匹配的项用repl替换,返回新字符串,repl可以是字符串或返回字符串的可调用对象,作用于每个匹配的Match对象

subn(pat, repl, string[, count=0])

将字符串中所有pat的匹配项用repl替换,返回包含新字符串和替换次数的二元元组,

repl可以是字符串或返回字符串的可调用对象,

作用于每个匹配的Match对象


总结

        由于正则表达式案例较长,也为了方便大家学习,本次文章贴出基础知识,以下链接是关于案例教程,请各位看官移步至测试案例链接:

(12条消息) 【Python养成】:正则表达式测试案例_嵌入式up的博客-CSDN博客

        

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值