我想要获取给定子字符串最后出现之前的字符串。
我的字符串是,
path = D:/me/vol101/Prod/cent/2019_04_23_01/image/AVEN_000_3400_img_pic_p1001-1010/pxy/AVEN_000_3400_img-mp4_to_MOV_v1001-1010.mov
我的子字符串为1001-1010
,它会出现两次。我只想得到最后一次出现之前的子字符串。
注意:我的子字符串是动态的,填充不同但只包含数字。
我想要的结果为:
D:/me/vol101/Prod/cent/2019_04_23_01/image/AVEN_000_3400_img_pic_p1001-1010/pxy/AVEN_000_3400_img-mp4_to_MOV_v
我使用了正则表达式和分片完成了这个问题。
>>> p = 'D:/me/vol101/Prod/cent/2019_04_23_01/image/AVEN_000_3400_img_pic_p1001-1010/pxy/AVEN_000_3400_img-mp4_to_MOV_v1001-1010.mov'
>>> q = re.findall("\d*-\d*",p)
>>> q[-1].join(p.split(q[-1])[:-1])
'D:/me/vol101/Prod/cent/2019_04_23_01/image/AVEN_000_3400_img_pic_p1001-1010/pxy/AVEN_000_3400_img-mp4_to_MOV_v'
>>>
有没有更好的方法纯粹使用正则表达式来实现?
请注意,我已经尝试了很多例子:
我通过使用带切片的正则表达式得到了答案,但我想仅使用正则表达式实现。