正则表达式--分组与分支

本文介绍了正则表达式的分组、分支和转义符号的使用方法。通过实例展示了如何匹配特定模式,如从文本中提取数字、字母组合,并解释了如何使用分支匹配不同条件。同时,讲解了转义符号在正则表达式中的作用,确保特殊字符按预期工作。
摘要由CSDN通过智能技术生成
# 分组和分支

import re

# 分组 -- ()
# 分组就是将正则表达式中的某一部分使用()括起来看成一个整体,然后进行这个整体的操作。
str1 = '789abc789'
re_str = '(\d{3})abc(\d{3})'
r1 = re.findall(re_str, str1)
print(r1)
"""
正则表达式的分组操作,首先先按照正则表达式从字符串中匹配出合适的结果,
如果正则表达式中还有分组,那么就从这个结果中再提取分组的那一部分,
如果一个正则表达式中有多个分组,那么多个分组提取的结果会合并为一个元组。
"""
str2 = '小明今年30岁,刚刚在清华大学博士毕业,月薪10000元。'
re_str = '[\u4e00-\u9fa5]{4}(\d\d[岁]).*(\d{5}[元])'
r2 = re.findall(re_str, str2)
print(r2)

# 分支 -- |
# 正则1|正则2 -- 表示获取正则表达式1的内容或者正则表达式2的内容
# 练习:写一个正则表达式,能够匹配一个字符串,abc后面是三个任意数字或者是三个大写字母。

str3 = 'abc123,.!?gdjhasgjsaabcAQE'
# 方法一:
re_str = '(abc(\d{3}|[A-Z]{3}))'
r3 = re.findall(re_str, str3)
result = [i[0] for i in r3]
print(result)
# 方法二:
re_str = 'abc\d{3}|abc[A-Z]{3}'

# 转义符号 -- \
# 在正则表达式有特殊意义的符号前面加\,
# 能够让这个符号的功能消失,表示这个符号本身。
"""
匹配任意字符 -- .(点) --> \. --> 表示匹配.(点).
匹配数字 -- \d --> \\d --> 表示匹配\d这个字符串。
"""
# 除了在[]中有特殊用法的符号(^、-)以外,其他的符号在[]中表示其本身。
# [.] -- 表示匹配一个.

str4 = '3。1415926'
re_str = '\d[.]\d{7}'
r4 = re.findall(re_str, str4)
print(r4)  # []

str5 = '3.1415926'
re_str = '\d[.]\d{7}'
r5 = re.findall(re_str, str5)
print(r5)  # ['3.1415926']

输出:

D:\pythonProject\venv\Scripts\python.exe "D:/pythonProject/网课/正则表达式 分组与分支.py"
[('789', '789')]
[('30岁', '10000元')]
['abc123', 'abcAQE']
[]
['3.1415926']

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

十五 0.o

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

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

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

打赏作者

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

抵扣说明:

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

余额充值