Python先拆分一个字符串,然后再拆分regex

2024-04-18 14:45:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有点困在一个基本的问题上,但我真的需要你的帮助。 在这里,我从一个rss提要中得到一个句子,我想从中提取出在结尾或不存在的等级 grades = thefeedentry.get("title", "").split(" ") 所以我把它分开,我得到的是: ['Séance1', ':', '9.25/20'] 现在我需要得到'9,25',我想我应该用regex来做,所以我用grades作为数组:

for grade in grades
                x = re.findall("/20$", grade)
                print(x)

在这里,我得到了一个没有任何规范的错误:/我认为它来自我的for循环,但我被卡住了,从一段时间以来


Tags: inreforgettitle结尾数组regex
3条回答

要从您提供的列表中获取数字,只需获取最后一项并用/拆分,然后获取第一项:

print ( grades[-1].split('/')[0] )

您可以使用regex直接从字符串中提取:/之间的数字:

import re
text = "Séance1 : 9.25/20"
m = re.search(r':\s*(\d[\d.]*)/', text)
if m:
    print ( m.group(1) )

参见Python demo。您可以添加逻辑来处理找不到号码的情况。你知道吗

正则表达式详细信息

  • :-冒号
  • \s*-0+空格
  • (\d[\d.]*)-第1组:一个数字,然后是0个或更多的数字或.字符
  • /-a/字符。你知道吗

参见regex demo。你知道吗

这里不需要正则表达式。你知道吗

这应该管用。。你知道吗

grades[-1].split('/')[0]

在这里,我们试图得到['Séance1',':','9.25/20']的最后一个索引值,即9.25/10

 grades[-1]

我们使用split函数对出现“/”的9.25/10进行拆分,得到[9.25,10]。你知道吗

split('/') 

然后我们选择上一步的第0个索引,得到9.25。你知道吗

这对你有帮助。你知道吗

import re
title = "Seance1' : 9.25/20"
re.search(r'(?<=(\:\s))[\d\.]+(?=[\/])', title).group()

正则表达式demo

相关问题 更多 >