例如:
我正在使用这个字符串:
/child1/child2/child3/
我想要的结果是:
/child1/child2/
请注意,每个孩子都可以有不同的长度。例如:
/someString/anotherString/andOneMore/
字符串也可以(在最后一种情况下我需要保持“/”):
/
答案 0 :(得分:2)
如果您将单独处理/
字符串:
private string TruncatePath(string path)
{
if (path == "/")
return path;
var parts = path.Split(new []{'/'}, StringSplitOptions.RemoveEmptyEntries);
return String.Format("/{0}/", String.Join("/", parts.Take(2)));
}
答案 1 :(得分:1)
这是替换不分裂的工作。使用正则表达式,我们匹配前两个项目,然后输出它们。
var pattern = @"(/[^/]+/)[^/]+/([^/]+/)";
Regex.Replace("/child1/child2/child3/",
pattern,
"$1$2"); // result `/child1/child3/`
Regex.Replace("/someString/anotherString/andOneMore/",
pattern,
"$1$2"); // result `/someString/andOneMore/`
Regex.Replace("/",
pattern,
"$1$2"); // result `/`
答案 2 :(得分:1)
所以你想把一个字符串“at”分给一个给定的斜杠?
int splitAt = 3;
var parts = "dsf/df/ss/sdfsfd/fsdfsd".Split('/').ToList();
var headParts = parts.Take(splitAt);
var tailParts = parts.Skip(splitAt);
var head = String.Join("/",headParts.ToArray()).Dump();
var tail = String.Join("/",tailParts.ToArray()).Dump();