您的位置:首页 > 汽车 > 新车 > 中国互联网排名前十名_网络工程师中级职称考试内容_海淀区seo引擎优化_下载百度网盘

中国互联网排名前十名_网络工程师中级职称考试内容_海淀区seo引擎优化_下载百度网盘

2025/4/2 15:34:17 来源:https://blog.csdn.net/2302_77326347/article/details/146452457  浏览:    关键词:中国互联网排名前十名_网络工程师中级职称考试内容_海淀区seo引擎优化_下载百度网盘
中国互联网排名前十名_网络工程师中级职称考试内容_海淀区seo引擎优化_下载百度网盘

正则表达式是一个特殊的字符序列,方便的检查一个字符串是否与某种模式匹配。re模块使Python拥有正则表达式功能。

1. 字符匹配

正则表达式在网络爬虫、数据分析中有着广泛使用,掌握正则表达式能够达到事半功倍的效果。

1.1 方法和功能

方法功能
match()判断一个正则表达式是否从开始处匹配一个字符串
search()遍历字符串,找到正则表达式匹配的第一个位置,返回匹配对象
findall()遍历字符串,找到正则表达式匹配的所有位置,并以列表的形式返回。如果给出的正则表达式中包含子组,就会把子组的内容单独返回,如果有多个子组就会以元组的形式返回。
finditer()遍历字符串,找到正则表达式匹配的所有位置,并以迭代器的形式返回

findall( , )

findall([ ],)

findall([^ ], ) 来找除了[]里面的字符

[a-z]匹配a~z的任意字符([0-9]也可以)

.匹配除了换行符以外的任意字符

贪婪匹配,匹配符合条件的最长的字符串

".? 字符串 " ,用来确定匹配的字符串前面有一个或者没有字符都符合要求

1.2 特殊字符

特殊字符含义
\d匹配任何十进制数字;相当于类 [0-9]
\D与 \d 相反,匹配任何非十进制数字的字符;相当于类 0-9
\s匹配任何空白字符(包含空格、换行符、制表符等);相当于类 [ \t\n\r\f\v]
\S与 \s 相反,匹配任何非空白字符;相当于类 \t\n\r\f\v
\w匹配任意一个文字字符,包括大小写字母、数字、下划线,等价于表达式[a-zA-Z0-9_]
\W于 \w 相反 (注:re.ASCII 标志使得 \w 只能匹配 ASCII 字符)
\b匹配单词的开始或结束
\B与 \b 相反

\w 匹配字母数字下划线(汉字)

\d匹配数字

\s匹配任意空白符 包括空格,制表符等等

2. 数量控制

控制匹配规则的重复次数~

2.1 *重复0次或多次

2.2 +重复1次或多次

2.3 ?重复1次或0次

2.4 {n}重复n次

2.5 {n,}重复n次或多次

2.6 {n,m}重复n到m次

3. 分组

()提取兴趣区域

(|)提取兴趣区域(| = or)

解释:

(?:主角团的|爱吃小面包的):这是一个非捕获组,匹配“主角团的”或“爱吃小面包的”,但不会捕获这些前缀。

([\u4e00-\u9fa5a-zA-Z·]+):这是一个捕获组,匹配一个或多个汉字、字母或特殊字符(如·),用于提取名字部分。

4. 开始和结束

^开始

$结尾

5. 特殊字符

由于正则表达式中* . \ {} () 等等符号具有特殊含义,如果你指定的字符正好就是这些符号,需要用\进行转义

6. 常用方法

6.1 re.findall

获取匹配到的所有数据

6.2 re.match

从字符串的起始位置匹配,成功返回一个对象否则返回none。

匹配成功返回对象,对象的方法:

方法功能
group()返回匹配的字符串
start()返回匹配的开始位置
end()返回匹配的结束位置
span()返回一个元组表示匹配位置(开始,结束)

6.3 re.search

扫描整个字符串并返回第一个成功匹配的字符串。成功返回一个对象否则返回none

6.4 re.sub

替换匹配成功的字符

类似与字符串的replace函数

6.5 re.split

根据匹配成功的位置对字符串进行分割

6.6 re.finditer

类似findall 但是不会全部返回出来 而是返回迭代器(比如匹配成功了10万个 全部返回就很吃内存了)

import re
​
text = "python is   very easy"
data = re.findall(r"\w+", text)
print(data)  # ['python', 'is', 'very', 'easy']

7. 常见正则

QQ号:[1 - 9][0 - 9]{4, }(腾讯QQ号从10000开始)
帐号(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$
身份证号(15位、18位数字):^\d{15}|\d{18}$
短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com