删除字符串的特定部分

问题描述 投票:0回答:5

嗨,我有一个文件,其中包含数千个文件路径,我希望将其移至Wazhu。问题是我需要目录,所以我看起来像>/apples/oranges/test.ex<我需要的是>/apples/oranges<不知道Regex还是仅使用str.replace()更好。由于每行都不相同,因此我需要找到最后一个/并将其以及所有内容删除,直到<

希望这很有道理。

python regex string
5个回答
0
投票

这里使用split和join方法:

s = '>/apples/oranges/test.ex<'
s = '/'.join(s.split('/')[:-1])+'<' # Splits s by '/', remove the last object, join them together, plus a '<'
print(s)

输出:

>/apples/oranges<

0
投票

尝试/[^/\r\n]*<$替换此<

demo


0
投票

您不需要使用正则表达式即可。您可以简单地使用:os.path.split

import os
head, tail = os.path.split("/apples/oranges/test.ex")
print(head)
Output: /apples/oranges

我也遇到了同样的问题,以上方法解决了它!


0
投票

您的意思是您只想要除最后一个“ /”以外的所有内容?

import os

file = open('file.txt', 'r')
for line in file.read().splitlines():
    print('/'.join(line.split('/',-1)[:-1]) + "<")

0
投票

您可以写

import re

s = '>/apples/oranges/test.ex<'

re.match(r'.*(?=\/)', s).group()

返回]

>/apples/oranges

这是有效的,因为.*是贪婪的,因此它消耗了直到最后一个斜杠的所有正斜杠。 (?=\/)正向超前

group(0)也可以。

Demo

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