吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1652|回复: 11
收起左侧

[求助] Python正则表达式 循环捕获所有书名

[复制链接]
Doublo 发表于 2020-10-26 19:53
请教各位大佬,在Python下想捕获下面的所有书名:

1023《带货》《古希腊》《威士忌原来是这么回事儿》《古希腊史》等

我是这么写的:\d+((《.+?》))+

返回的是:分组1:《古希腊史》
                  分组2:《古希腊史》
返回的都是最后一个

想要的是:分组1:《带货》
                  分组2:《古希腊》
                  分组3:《威士忌原来是这么回事儿》
                  分组4:《古希腊史》

初学,实在搞不清,先谢谢各位大佬了

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

hhtkey 发表于 2020-10-26 19:56
要用数组提取打印啊
ciker_li 发表于 2020-10-26 19:57
rsnodame 发表于 2020-10-26 20:23
你想得太复杂了

[Python] 纯文本查看 复制代码
import re
ss = '1023《带货》《古希腊》《威士忌原来是这么回事儿》《古希腊史》等'
ptn = r'《.+?》'
r = re.findall(ptn,ss)
# r == ['《带货》', '《古希腊》', '《威士忌原来是这么回事儿》', '《古希腊史》']

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
神枪泡泡丶 + 2 + 1 用心讨论,共获提升!

查看全部评分

积木工具箱 发表于 2020-10-26 20:35
现在很多正则工具,调试好了再上代码
 楼主| Doublo 发表于 2020-10-27 12:47
rsnodame 发表于 2020-10-26 20:23
你想得太复杂了

[mw_shl_code=python,true]import re

用捕获组是因为文档里面还有大批量其他带书名号的地方,而这个数字开头带书名号的这一行才是我需要的,谢谢你了
 楼主| Doublo 发表于 2020-10-27 12:54
积木工具箱 发表于 2020-10-26 20:35
现在很多正则工具,调试好了再上代码

在regex101调试的,这个网站可以把匹配到的捕获组也显示出来,问题就是调试不出来我想要的效果
wanwfy 发表于 2020-10-28 05:47
[Python] 纯文本查看 复制代码

import re
str = '1023《带货》《古希腊》《威士忌原来是这么回事儿》《古希腊史》等'

pattern = re.compile('《(.*?)》')

pattern.findall(str)
rsnodame 发表于 2020-10-28 08:42
Doublo 发表于 2020-10-27 12:47
用捕获组是因为文档里面还有大批量其他带书名号的地方,而这个数字开头带书名号的这一行才是我需要的,谢 ...

那你试试删掉一层()。你的pattern用了两层括号
 楼主| Doublo 发表于 2020-10-28 15:49
rsnodame 发表于 2020-10-28 08:42
那你试试删掉一层()。你的pattern用了两层括号

删一层只能捕获最后一次匹配,多重循环捕获提示可以加一层括号实现,但是2次捕获都是最后一次,查了一下,别人说python实现补了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 11:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表