当前位置:网站首页>[正则表达式] 匹配分组
[正则表达式] 匹配分组
2022-07-27 14:25:00 【柚子树cc】
1. 匹配分组相关正则表达式
| 代码 | 功能 |
|---|---|
| | | 匹配左右任意一个表达式 |
| (ab) | 将括号中字符作为一个分组 |
\num | 引用分组num匹配到的字符串 |
(?P) | 分组起别名 |
| (?P=name) | 引用别名为name分组匹配到的字符串 |
示例1:|
需求:在列表中[“apple”, “banana”, “orange”, “pear”],匹配apple和pear
import re
# 水果列表
fruit_list = ["apple", "banana", "orange", "pear"]
# 遍历数据
for value in fruit_list:
# | 匹配左右任意一个表达式
match_obj = re.match("apple|pear", value)
if match_obj:
print("%s是我想要的" % match_obj.group())
else:
print("%s不是我要的" % value)
执行结果:
apple是我想要的
banana不是我要的
orange不是我要的
pear是我想要的
示例2:( )
需求:匹配出163、126、qq等邮箱
import re
match_obj = re.match("[a-zA-Z0-9_]{4,20}@(163|126|qq|sina|yahoo)\.com", "[email protected]")
if match_obj:
print(match_obj.group())
# 获取分组数据
print(match_obj.group(1))
else:
print("匹配失败")
执行结果:
[email protected]
163
需求: 匹配qq:10567这样的数据,提取出来qq文字和qq号码
import re
match_obj = re.match("(qq):([1-9]\d{4,10})", "qq:10567")
if match_obj:
print(match_obj.group())
# 分组:默认是1一个分组,多个分组从左到右依次加1
print(match_obj.group(1))
# 提取第二个分组数据
print(match_obj.group(2))
else:
print("匹配失败")
执行结果:
qq
10567
示例3:\num
需求:匹配出hh
match_obj = re.match("<[a-zA-Z1-6]+>.*</[a-zA-Z1-6]+>", "<html>hh</div>")
if match_obj:
print(match_obj.group())
else:
print("匹配失败")
match_obj = re.match("<([a-zA-Z1-6]+)>.*</\\1>", "<html>hh</html>")
if match_obj:
print(match_obj.group())
else:
print("匹配失败")
运行结果:
<html>hh</div>
<html>hh</html>
需求:匹配出www.baidu.cn
match_obj = re.match("<([a-zA-Z1-6]+)><([a-zA-Z1-6]+)>.*</\\2></\\1>", "<html><h1>www.baidu.cn</h1></html>")
if match_obj:
print(match_obj.group())
else:
print("匹配失败")
运行结果:
<html><h1>www.itcast.cn</h1></html>
示例4:(?P)(?P=name)
需求:匹配出www.itcast.cn
match_obj = re.match("<(?P<name1>[a-zA-Z1-6]+)><(?P<name2>[a-zA-Z1-6]+)>.*</(?P=name2)></(?P=name1)>", "<html><h1>www.itcast.cn</h1></html>")
if match_obj:
print(match_obj.group())
else:
print("匹配失败")
运行结果:
<html><h1>www.itcast.cn</h1></html>
边栏推荐
- Leetcode 90. subset II backtracking /medium
- Tools - common methods of markdown editor
- 学习Parquet文件格式
- 一文读懂鼠标滚轮事件(wheelEvent)
- Spark Bucket Table Join
- $router.back(-1)
- IJCAI 2022 outstanding papers were published, and 298 Chinese mainland authors won the first place in two items
- Multi table query_ Exercise 1 & Exercise 2 & Exercise 3
- Network equipment hard core technology insider router Chapter 3 Jia Baoyu sleepwalking in Taixu Fantasy (middle)
- Cap theory and base theory
猜你喜欢
随机推荐
Network equipment hard core technology insider router Chapter 6 tompkinson roaming the online world (middle)
"Sword finger offer" linked list inversion
【剑指offer】面试题41:数据流中的中位数——大、小堆实现
[0 basic operations research] [super detail] column generation
《终身成长》读书笔记(一)
Spark TroubleShooting整理
Simple mathematical knowledge related to 3D
Cap theory and base theory
[daily question 1] 558. Intersection of quadtrees
js寻找数组中的最大和最小值(Math.max()方法)
【剑指offer】面试题49:丑数
DevEco Studio2.1运行项目报错
Photoelectric isolation circuit design scheme (six photoelectric isolation circuit diagrams based on optocoupler and ad210an)
Leetcode 341. flattened nested list iterator DFS, stack / medium
Network equipment hard core technology insider router Chapter 13 from deer by device to router (Part 1)
flutter —— 布局原理与约束
修改 Spark 支持远程访问OSS文件
Spark 3.0 DPP实现逻辑
How to edit a framework resource file separately
Leetcode 191. number of 1 bits bit operation /easy




![[0 basic operations research] [super detail] column generation](/img/cd/f2521824c9ef6a50ec2be307c584ca.png)




