Python正则表达式或split/strip从文本行括号之间获取int

标签 python regex

我有一个文本文件,其中包含如下行:

[00451] Kayle - 2/3/15 - Win - 2012-11-22

开头的括号 [] 之间的数字是一个 ID 号,我需要从文件的最后一行(或传递的包含该行的字符串)获取该数字,以便我可以增加它以将更多行写入文件,这样每个游戏记录都会有一个唯一的 ID 号。我已经尝试使用 split、strip 和 regex 一段时间了,但我似乎无法让它工作。有人可以帮忙吗?我也许可以使用文件的行来执行此操作,但我希望稍后能够按 ID、名称或其他标准对文件重新排序。

我在其他代码中写入文件的数据如下所示:

data = "[%s] %s - %s/%s/%s - %s - %s\n" % (id, champname, kills, deaths, assists, winloss, timestamp)

如何获取最后一行的 id,以便可以增加将来的附加 id?

最佳答案

你可以像这样从线路中获取数据,,

In [5]: x = "[00451] Kayle - 2/3/15 - Win - 2012-11-22"

In [6]: x.split(']')[0].lstrip('[')
Out[6]: '00451'

然后将其转换为 int 并进行数学计算

In [7]: str(int(x.split(']')[0].lstrip('[')) + 1).zfill(5)
Out[7]: '00452'

另一种方法可以做到这一点

In [8]: id = "%05d" %(int(x.split(']')[0].lstrip('[')) + 1)

In [9]: id
Out[9]: '00452'

关于Python正则表达式或split/strip从文本行括号之间获取int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13527329/

相关文章:

Python:如何强制 1 元素 NumPy 数组为二维数组?

python - 使用Python提取包含单词的句子...以及它周围的句子?

Java - 通过多行正则表达式匹配第一个字符串

python - 无法运行 openstack nova 的单元测试

python - 无法停止在qgraphicsview中绘制矩形

python - 如何在 scipy 中创建一个巨大的稀疏矩阵

python - BeautifulSoup:我可以在不添加额外标签的情况下进行美化吗?

python - 使用 Python 正则表达式分割字符串

正则表达式可选所有内容以空格或逗号分隔(城市、州)

javascript - 使用 Javascript 正则表达式避免回溯