如何逐层获取反斜杠分隔字符串每一级对应的左侧所有字符
解决路径逐层拼接问题
你之前只取Split("\\"c)(0)只能拿到第一个分段,想要得到所有层级的前缀路径,核心思路是先分割所有分段,再逐次拼接前N个分段即可。
对应你使用的VB.NET语法示例:
' 你的原始路径 Dim fullPath As String = "folder1\folder2\folder3\folder4" ' 先按反斜杠分割为所有层级分段的数组 Dim pathSegments As String() = fullPath.Split("\"c) ' 用来存储所有层级结果的列表 Dim resultList As New List(Of String)() ' 从1个分段开始拼接,直到所有分段都用上 For i As Integer = 1 To pathSegments.Length Dim currentLevelPath = String.Join("\", pathSegments.Take(i)) resultList.Add(currentLevelPath) Next
最终resultList里的内容就是你需要的结果:
folder1 folder1\folder2 folder1\folder2\folder3 folder1\folder2\folder3\folder4
注:你示例里的第一个结果是
folder,如果不是笔误需要调整首段内容,直接修改第一个拼接后的结果即可。
其他常见语言实现参考
C#版本
string fullPath = @"folder1\folder2\folder3\folder4"; string[] segments = fullPath.Split('\\'); List<string> result = new List<string>(); for (int i = 1; i <= segments.Length; i++) { result.Add(string.Join("\\", segments.Take(i))); }
Python版本
full_path = r"folder1\folder2\folder3\folder4" segments = full_path.split("\\") result = ["\\".join(segments[:i]) for i in range(1, len(segments) + 1)]
边界情况处理
如果你的原始路径可能存在首尾多余的反斜杠,先做一次trim处理再分割即可:Dim pathSegments As String() = fullPath.Trim("\"c).Split("\"c)
内容的提问来源于stack exchange,提问作者amaru96
相关产品推荐
相关产品推荐

