如何删除最后 \ 之前的所有字符 [重复]

Posted

技术标签:

【中文标题】如何删除最后 \\ 之前的所有字符 [重复]【英文标题】:How to remove all characters before the final \ [duplicate]如何删除最后 \ 之前的所有字符 [重复] 【发布时间】:2017-04-12 04:08:08 【问题描述】:

我有一个名为dllName 的变量,它获取已执行的dll 的名称。有时此 dll 以"kernel32.dll" 的格式返回,有时以"C:\Windows\system32\kernel32.dll" 的格式返回。

路径可能不同,我想要实现的是剥离"C:\Windows\system32\"

编辑:Extract file name from path, no matter what the os/path format

我的问题和这个问题不一样,因为 os.path.basename 和 os.path.split 在这种情况下不起作用。

对于 os.path.split,头部为空,尾部包含整个路径?

【问题讨论】:

不需要正则表达式,只需使用os.path.basename 您能告诉我们您尝试过哪些不起作用或遇到困难的方法吗?如果您自己还没有尝试过任何代码,您可以使用 *** 上的搜索功能吗? @Rawing: os.path.basename 不适用于 Linux 上的 Windows 路径。 【参考方案1】:

你可以使用:

path = 'C:\\Windows\\system32\\kernel32.dll'
print path.split('\\')[-1]
#=>  kernel32.dll

import os.path
print os.path.basename(path)

import re

def extract_basename(path):
  """Extracts basename of a given path. Should Work with any OS Path on any OS"""
  basename = re.search(r'[^\\/]+(?=[\\/]?$)', path)
  if basename:
    return basename.group(0)

print extract_basename(path)

最后一个示例应该适用于任何操作系统、任何路径。

Here 是一些测试。

【讨论】:

选项 1 有效,选项 2 无效。感谢您的帮助! 选项 2 不适用于 Linux 上的 Windows 路径。选项 3 应该适用于任何操作系统上的任何路径。

以上是关于如何删除最后 \ 之前的所有字符 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

php如何从php中的字符串中删除最后一个字符[重复]

删除字符串的最后两个字符[重复]

在 JavaScript 中删除最后一个逗号之前的文本

如何从PHP和Javascript中的字符串中删除所有空格[重复]

如何得到一个字符串最后一个.之前的所有字符

如何删除Java中特定字符之前的所有字符?