Python regex如何用字符串中最后找到的数字分割字符串?

问题描述 投票:1回答:2

我是重新使用python模块的人。我正在尝试在最后找到的数字中分割字符串。

Given string:
![](images/folder0/subfolder1/file0.png)
                                  ^ last found number = 0


I would like to split the string in three parts:  

part1: ![](images/folder0/subfolder1/file
part2: 0
part3: .png)

我的尝试:

我可以找到这些拆分:

lst = re.split(r'(\d+)', query)
# ['![](images/folder', '0', '/subfolder', '1', '/file', '0', '.png)']

但是,我不确定如何分成三部分。

感谢您的帮助。

python regex
2个回答
0
投票

这样的东西?如果查询中的“文件” +编号一致:

import sys, re
query = "![](images/folder0/subfolder1/file10.png)"
num = re.findall('\d+',query)[-1] # gives last number 0

newnum = int(num)+1
query = query.replace(r'file'+num, 'file'+str(newnum))
print(query)

0
投票

拥有使用正则表达式吗?我没有使用正则表达式就写下来了:

s = '![](images/folder0/subfolder1/file0.png)'

s1 = s.split('/')
s2 = s1[len(s1)-1].split('.')
s3 = s2[0][0:4] + str(int(s2[0][4:])+1) + '.' + s2[1]
new_filelist = []
for i in s1[0:len(s1)-1]:
    append_str = i + '/'
    new_filelist.append(append_str)
new_filelist.append(s3)
new_filename = ''.join(i for i in new_filelist)

只要字符串始终以'fileXX.png'结尾,它将在最后一位数字上加1

© www.soinside.com 2019 - 2024. All rights reserved.