如何在特定的"/"当它包含许多"/"字符时
本文关键字:quot 包含许 字符 | 更新日期: 2023-09-27 18:02:07
例如:
我有这个字符串:
/child1/child2/child3/
我想要的结果是:
/child1/child2/
注意每个子节点的长度可以不同。例如:
/someString/anotherString/andOneMore/
字符串也可以只是(在最后一种情况下,我需要保持"/"原样):
/
如果您将单独处理/
字符串:
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)));
}
这是一个替换而不是分割的作业。我们使用正则表达式匹配前两项,并简单地输出它们。
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 `/`
所以你想分割字符串"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();