C# 如何在特定的“位置”拆分字符串/&引用;当它容纳了许多/&引用-人物
例如:C# 如何在特定的“位置”拆分字符串/&引用;当它容纳了许多/&引用-人物,c#,C#,例如: /someString/anotherString/andOneMore/ 我有一根绳子: /child1/child2/child3/ 我想要的结果是: /child1/child2/ 请注意,每个孩子都可能有不同的长度。例如: /someString/anotherString/andOneMore/ 字符串也可以是(在最后一种情况下,我需要保持“/”不变): 如果要单独处理/字符串: private string TruncatePath(string path) {
/someString/anotherString/andOneMore/
我有一根绳子:
/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 `/`
所以你想在给定的斜线处拆分一个字符串
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();
您现在是如何尝试拆分它的?
String.split()
,然后String.Join()
您想要的部分将是一种方法拆分的标准是什么?”…或者“您可以更详细一些吗?ElGavilan:如果有:/child1/child2/child3/
,然后执行以下操作:String[]SplittedUrl=FullUrl.split(“/”);
然后我希望我的结果是这样的:/child1/child2/
谢谢你的回答。但是我不能使用部分:input.Split。在那里出错。部分“input”我的情况是string@user3228992Split
是字符串类的一种方法。是的,我知道,但我不能使用它,不知道为什么。是因为它是一个属性:公共字符串输入{get;set;}
?很抱歉,我把事情搞砸了!我现在要再次尝试你的解决方案:)