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

时间:2013-01-25 09:06:28

标签: c# string

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

New Text Document.txt : "(FILE)-(" + f.Length + " Bytes)"

我的问题是删除:“(文件) - (”+ f.Length +“Bytes)”。 如何从字符串中删除JUST那部分? f.Length未知的地方...... 谢谢!

3 个答案:

答案 0 :(得分:1)

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

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);

答案 1 :(得分:0)

我希望我有你想要的东西

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);

打印some text .txt

答案 2 :(得分:0)

var match = Regex.Match(pattern: @"\((.*)\)-\(\d+ Bytes\)$", input: name);
if(match.Success)
{
    string fileName = match.Groups[1].Value;
}