删除字符串的特定部分

时间:2020-05-28 19:49:40

标签: python regex string

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

希望这是有道理的。

5 个答案:

答案 0 :(得分: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<

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

demo

答案 3 :(得分:0)

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

import os

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

答案 4 :(得分:0)

你可以写

import re

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

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

返回

>/apples/oranges

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

Demo