如何高效移除字符串中最后一个反斜杠\之前的所有字符?
高效提取字符串中最后一个反斜杠及其后的内容
核心思路是找到字符串中最后一个\的位置,从该位置开始截取到字符串末尾,这种方法时间复杂度为O(n),是最高效的实现方式,避免了正则或字符串分割带来的额外开销。
C# 实现
针对Windows路径场景,使用原生字符串方法实现:
string input = @"C:\Users\vadym\OneDrive\Робочий стіл\sharp-kn3-lab2-2022-autoteam\AutoOA\AutoOA.UI\wwwroot\Images\room.png"; int lastBackslashIdx = input.LastIndexOf('\\'); string output = lastBackslashIdx >= 0 ? input.Substring(lastBackslashIdx) : input; // 输出结果:\Images\room.png
说明:LastIndexOf从字符串尾部反向查找第一个\的索引,找到后从该索引截取子串;如果没有找到反斜杠,直接返回原字符串。
Python 实现
input_str = r"C:\Users\vadym\OneDrive\Робочий стіл\sharp-kn3-lab2-2022-autoteam\AutoOA\AutoOA.UI\wwwroot\Images\room.png" last_backslash_pos = input_str.rfind('\\') output = input_str[last_backslash_pos:] if last_backslash_pos != -1 else input_str # 输出结果:\Images\room.png
说明:rfind方法从右向左查找指定字符的位置,找到后通过切片获取目标子串;无反斜杠时返回原字符串。
关键提示
- 优先使用原生字符串的反向查找方法,比正则表达式、字符串分割等方式内存占用更少、执行速度更快
- 必须处理无反斜杠的边界情况,避免索引越界报错
内容的提问来源于stack exchange,提问作者nord_93
相关产品推荐
相关产品推荐

