鱼C论坛

 找回密码
 立即注册
查看: 291|回复: 2

[已解决]正则遇到这样的问题怎么处理呢

[复制链接]
发表于 2024-5-10 22:50:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
aa='class="javascript:void(0)" class="info-prev" class="display:none;'

re.findall('class=([\w\W]*?)class=', aa)

我假设这个,我需要取"javascript:void(0)" class="info-prev" 这一段的内容,但是如果用正则,出来的结果会是"javascript:void(0)"

我想知道怎么才可以匹配关键字是第2个或者第n个呢?
最佳答案
2024-5-10 22:59:31
aa='class="javascript:void(0)" class="info-prev" class="display:none;"'
result = re.findall('class="(.*?)"', aa)

print(result[0])                      # 匹配到的第一个
print(result[1])                      # 匹配到的第二个
print(result[2])                      # 匹配到的第三个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-10 22:50:54 | 显示全部楼层
你可以使用正则表达式中的分组来匹配第2个或者第n个关键字。具体方法是,在你想要匹配的关键字前面添加一个分组,并使用圆括号将其包裹起来。

例如,你想要匹配第2个关键字,你可以这样修改你的正则表达式:
import re

aa = 'class="javascript:void(0)" class="info-prev" class="display:none;'

result = re.findall('class=(.*?)class=', aa)
second_keyword = result[1]
print(second_keyword)

输出结果为:"info-prev"

同样的道理,如果你想要匹配第n个关键字,你可以使用`result[n-1]`来获取对应位置的匹配结果。

需要注意的是,这种方法只适用于你确定匹配的关键字在字符串中存在并且顺序固定的情况。如果关键字的顺序是随机的,则不能使用这种方法。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-10 22:59:31 | 显示全部楼层    本楼为最佳答案   
aa='class="javascript:void(0)" class="info-prev" class="display:none;"'
result = re.findall('class="(.*?)"', aa)

print(result[0])                      # 匹配到的第一个
print(result[1])                      # 匹配到的第二个
print(result[2])                      # 匹配到的第三个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 17:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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