文章目录
前言
谢谢大家的关注!我之前做了一些网络爬虫的项目,项目里涉及到了正则表达式的用法,相信大家要是用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]
反向字符集,匹配除x、y、z之外的任何字符
[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博客
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/73642.html