c#如何从子字符串中获取一个值

本文关键字:一个 获取 字符串 | 更新日期: 2023-09-27 18:25:51

如何解决此问题?

我想更改的内容:

C: ''files''team''business''dev''Source''systems''extension''destination''1.0.1.1''

转换为新值:

value="1.0.11";

c#如何从子字符串中获取一个值

您只需获得相应DirectoryInfo:的Name

string path = @"C:'files'team'business'dev'Source'systems'extension'destination'1.0.1.1'";
string version = new DirectoryInfo(path).Name;

替代方法:

var path = @"C:'files'team'business'dev'Source'systems'extension'destination'1.0.1.1'";
var value = Path.GetFileName(path.TrimEnd(new[]{'/',''''}));
// OUTPUT: 1.0.1.1

这基本上删除了最后一个目录delimeter,然后将最后一个文件夹作为文件名处理,因此返回最后一个文件名。


根据@JeppeStigNielsen下面的评论,这里有一个更好的、独立于平台的替代方案。

var value = Path.GetFileName(Path.GetDirectoryName(path));

如果也存在文件名,这将起作用。

var value = Path.GetFileName(Path.GetDirectoryName(".../1.0.1.1/somefile.etc"));
// returns 1.0.1.1

Darin的答案很棒,但作为一种替代方案;

string s = @"C:'files'team'business'dev'Source'systems'extension'destination'1.0.1.1'";
string[] array = s.Split('''');
Console.WriteLine(array[array.Length - 2]);

输出将为;

1.0.1.1

这里是演示