如何使用Python的正则表达式
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容主要讲解"如何使用Python的正则表达式",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用Python的正则表达式"吧!一、正则表达式介绍1
千家信息网最后更新 2026年11月04日如何使用Python的正则表达式一、正则表达式介绍
本篇内容主要讲解"如何使用Python的正则表达式",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用Python的正则表达式"吧!
一、正则表达式介绍
1.学习爬虫,为什么必须会正则表达式?
有时候,我们爬取一些网页具体内容时,会发现我们只需要这个网页某个标签的一部分内容,或者是这个标签的某个属性的值时,用普通的 xpath 或者css.selector是不能实现我们的想法的,这个时候就必须用到正则表达式去匹配获取。
2.正则表达式官方简介?
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
二、看代码,边学边敲边记正则表达式
day01:
1'''
2author : 极简XksA
3date : 2018.7.27
4goal : 正则表达式
5'''
6
7import re
8
9line = 'jijianXksA123'
10
11# ^a 表示匹配以a开头的字符串(只匹配一次)
12# . 表示该字符可为任意字符(只匹配一次)
13# * 表示前面的字符可以出现任意次(0次或多次)(多次匹配)
14reg_str01 = '^j.*' # 表示以j开头的字符串
15# re.match 函数
16# 第一个参数是匹配的格式
17# 第二参数是要匹配的字符串
18# 返回值为:匹配成功,返回match对象,否则返回:None
19
20if re.match(reg_str01,line) :
21 print("匹配成功!") # reg_str = '^j.*' 匹配成功
22else:
23 print("匹配失败!") # reg_str = '^i.*' 匹配失败
24
25
26# 23$ 表示匹配以23结尾的字符串(只匹配一次)
27reg_str02 = '^j.*23$'
28if re.match(reg_str02,line) :
29 print("匹配成功!") # reg_str = '^j.*23$' 匹配成功
30else:
31 print("匹配失败!") # reg_str = '^j.*13$' 匹配失败
32
33
34line01 = 'boooboaobxby'
35# () 内的为 匹配模式,通过 group函数 可以取出匹配结果
36# 正则表达式贪婪匹配模式:从后面(右边)开始匹配
37reg_str03 = '.*(b.*b).*'
38test01 = re.match(reg_str03,line01)
39if test01:
40 print(test01.group(1)) # result : bxb
41else:
42 print("匹配失败!")
43
44# 正则表达式非贪婪匹配模式:从前面(左边)开始匹配
45# ? : 表示从左边开始匹配,匹配到第一个符合模式的内容,即进入模式
46#
47reg_str03 = '.*?(b.*b).*' # 半贪婪匹配
48reg_str04 = '.*?(b.*?b).*' # 非贪婪匹配
49test01 = re.match(reg_str03,line01)
50test02 = re.match(reg_str04,line01)
51if test01 and test02:
52 print(test01.group(1)) # result : boooboaobxb
53 print(test02.group(1)) # result : booob
54else:
55 print("匹配失败!")
day02:
1'''
2author : 极简XksA
3date : 2018.7.28
4goal : 正则表达式
5'''
6import re
7line01 = 'boooboaobcxby'
8
9def regtest(reg_str,line = line01):
10 test = re.match(reg_str, line)
11 if test:
12 print(test.group(1))
13 else:
14 print("匹配失败!")
15
16# + :表示前面的字符,至少出现一次
17reg_str04 = '.*(b.+b).*' # (b.+b)表示b与b之间至少有一个字符
18regtest(reg_str04) # result : bcxb
19
20# {n} : 控制前面字符出现次数
21# a{2} : 表示a出现两次
22# b{3,4} : 表示b至少出现3次,最多出4次
23# c{4,} : 表示c至少出现4次
24reg_str05 = '.*(b.{2}b).*' # (b.{2}b)表示匹配到的b与b之间,只有两字符
25reg_str06 = '.*(b.{3,4}b).*' # (b.{3,6}b)表示匹配到的b与b之间,至少有3个字符,至多有4个字符
26reg_str07 = '.*(b.{4,}b).*' # (b.{8,}b)表示匹配到的b与b之间,至少有4个字符
27regtest(reg_str05) # result : bcxb
28regtest(reg_str06) # result : boaob
29regtest(reg_str07) # result : boaobcxb
30
31# | :表示 或
32# (abc|123) : 表示匹配到 abc 或者 123,都算匹配成功
33reg_str08 = '.*(boo|abc)'
34reg_str09 = '.*(abc|boo)'
35regtest(reg_str08) # result : boo
36regtest(reg_str09) # result : boo
37
38# [] : 表示 里面包含的内容都可以进行匹配,包含内容只有表面字符含义
39# [abcd] : 表示 只要这个字符为 a/b/c/d中的一个都可以匹配成功
40# [0-9] : 表示 只要这个字符在 0-9 这个区间内,都可以匹配成功
41# [^x] : 表示匹配 字符不为 x
42line02 = '电话号:15573563467'
43reg_str10 = '.*(1[3458][0-9]{9}).*'
44reg_str11 = '.*(1[3458][^1]{9}).*'
45regtest(reg_str10,line02) # result : 15573563467
46regtest(reg_str11,line02) # result : 15573563467
47
48# \s 表示匹配空格,匹配一次
49# \S 表示匹配不是空格的字符,匹配一次
50# \w 表示匹配 A-Z、0-9、_ 中的容易字符,匹配一次
51# \W 与 \w 相反
52# \d 表示数字
53# [\u4E00-\u9FA5] : 表示所有汉字,unicode 编码
54
55def regtest_test(reg_str,line = line01):
56 test = re.match(reg_str, line)
57 if test:
58 print(test.group(1)+':'+test.group(2)+'-'+test.group(3)+'-'+test.group(4))
59 else:
60 print("匹配失败!")
61
62# 简单实例
63str01 = '张三出生于1997年12月20日'
64str02 = '李四出生于1989-01-20'
65str03 = '王五出生于1997/2/5'
66str04 = '赵六出生于1997.12.20'
67str = [str01,str02,str03,str04]
68# 提取出姓名+出生日期
69# 匹配模式
70reg_str12 = '(.*)出生于(\d{4})[.年/-](\d{1,2})[.月/-](\d{1,2}).*?'
71for i in range(4):
72 regtest_test(reg_str12,str[i])
73# result :
74# 张三:1997-12-20
75# 李四:1989-01-20
76# 王五:1997-2-5
77# 赵六:1997-12-20到此,相信大家对"如何使用Python的正则表达式"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
字符
表达式
正则
成功
内容
模式
b.
贪婪
之间
字符串
少有
学习
代码
函数
参数
只有
开头
标签
空格
网页
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司的优势
互联网科技的英文
新浪科技互联网
撒么互联网科技公司
人人互联网科技是培训
四个字互联网科技公司取名
科技赋能互联网健康
云创客互联网科技公司
华服互联网科技官网
互联网科技创新服务
宁夏科技产业互联网案例
黑科技闪耀互联网之光
崇明区互联网教育科技售后服务
洛阳昕诺飞互联网科技有限公司
天津腾达互联网科技有限公司
佛山市翊博互联网络科技有限公司
中国互联网有什么科技
广东工业互联网大赛深圳学泰科技
互联网科技职业技能培训学校
互联网科技创新创业项目
互联网科技官网
新华互联网科技学院
嘟嘟瓜互联网科技
美国互联网黑科技
互联网科技股有哪些
山东星卡互联网科技有限公司官网
兰石爱特工业互联网科技分公司
马化腾互联网科技教学
互联网科技创新方面的资料
伍佰万互联网科技是干嘛的