首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对如何使用单个正则表达式提取多个数据值感到困惑

对如何使用单个正则表达式提取多个数据值感到困惑
EN

Stack Overflow用户
提问于 2018-08-08 10:20:24
回答 1查看 28关注 0票数 1

我有一个文本文件,其中的文本如下所示:

代码语言:javascript
运行
复制
(49) Sat Jun/30 21:00        Uruguay     2-1 (1-0)   Portugal       @ Fisht Stadium, Sochi (UTC+3)
[Edinson Cavani 7', 62'; Pepe 55']

我必须实现一个生成器函数,它根据这些规则从每行文本中提取数据

来自输入文件的-read一个游戏的2行文本

-use 2个正则表达式(每行一个),用于提取一个游戏对象的数据(颜色编码的here

-pass回传数据(注意,提取的数据是回传的,而不是回传游戏对象)

我可以提取1个数据值,但在使用一个正则表达式从一行文本中提取5个数据值(Game Number,Country1/2,Score1/2)时遇到了问题。

EN

回答 1

Stack Overflow用户

发布于 2018-08-08 10:52:00

试试这个:

代码语言:javascript
运行
复制
import re
with open('FileName.txt','r') as f:
   print([{'Game Number':line.split()[0],'Country 1':line.split()[4],'Country 2':line.split()[7],'Score 1':line.split()[5], 'Score 2':line.split()[6]} if not line[0]=='[' else {'Player Name':[re.sub('[^a-zA-Z\s+]','',i).strip() for i in line.split(';')], 'Minute':[[int(re.sub('\D','',x)) for x in i.split() if any(a for a in x if a.isdigit())] for i in line.split(';')]} for line in f])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51737752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档