C# 如何删除具有未知int的字符串的最后一部分?

C# 如何删除具有未知int的字符串的最后一部分?,c#,string,C#,String,所以,我正在制作一个从我家的一台电脑到另一台电脑的文件传输程序。客户机可以查看服务器的文件并获取它想要的内容。(使移动项目/文档/音乐变得非常容易)。这是一个文件字符串的示例: New Text Document.txt : "(FILE)-(" + f.Length + " Bytes)" 我的问题是删除:“(文件)-(+f.Length+“Bytes)”。 我怎样才能从字符串中删除该部分?f.长度未知的地方。。。 谢谢 我希望我得到了你想要的 string contents = "some

所以,我正在制作一个从我家的一台电脑到另一台电脑的文件传输程序。客户机可以查看服务器的文件并获取它想要的内容。(使移动项目/文档/音乐变得非常容易)。这是一个文件字符串的示例:

New Text Document.txt : "(FILE)-(" + f.Length + " Bytes)"
我的问题是删除:“(文件)-(+f.Length+“Bytes)”。 我怎样才能从字符串中删除该部分?f.长度未知的地方。。。
谢谢

我希望我得到了你想要的

string contents = "some text (FILE)-(5435 Bytes)  another text";

string result = Regex.Replace(contents, @"\(FILE\)-\(\d+ Bytes\)", "");

Console.WriteLine (result);
印刷品:

some text   another text
.txt之后删除所有内容的解决方案

string contents = "some text .txt (FILE)-(5435 Bytes)  another text";
string lastSegment = ".txt";
var result = contents.Substring(0, contents.IndexOf(lastSegment) + lastSegment.Length);
Console.WriteLine (result);
打印
一些text.txt

作为正则表达式答案的替代方法,一个选项是使用LastIndexOf查找字符串已知部分的最后一次出现(例如
(文件)


您考虑过使用正则表达式吗?string[]strs=str.Split(':);strs[1]是您要删除的部分。是否正确?+1到regexps。如果在int之前有一些随机的(编码时不知道的)字符串部分,那么它将是最合适的“(”不是有效的转义字符。是的,基本上是这样,但这会删除“:”以及结尾的其余部分吗?是否要删除
字节之后的所有文件内容?
?New Text Document.txt:(file)-(“+f.Length+“Bytes)”我想删除.txt之后的所有内容-但是f.Length在运行时将是一个未知的int…所以删除
.txt
之后包含内容的所有内容。我已经更新了我的答案
var match = Regex.Match(pattern: @"\((.*)\)-\(\d+ Bytes\)$", input: name);
if(match.Success)
{
    string fileName = match.Groups[1].Value;
}
var oldString = "ThisIsAString (FILE)-(1234 Bytes";
int indexToRemoveTo = oldString.LastIndexOf("(FILE)");

// Get all the characters from the start of the string to "(FILE)"
var newString = oldString.Substring(0, indexToRemoveTo);