通过拆分获取部分文件名

雅科夫雅科夫

我有以下文件名:

1_2_firstname_00b32acd-1234-4567-12345678900_1597932388.zip
1_2_firstname_00b32ace-1234-4568-12345678900_1597932318_id.zip
1_2_firstname_00b32acf-1234-4557-12345678900_id_1597932358_id2.zip
1_2_firstname_00b32ccg-1234-4167-12345678900_1597932331_id_id2_id3.zip

在某些情况下,我的文件包含 id,有时不包含。

仅获取部分文件名的最佳方法是什么

 1_2_firstname_00b32acd-1234-4567-12345678900
 1_2_firstname_00b32acf-1234-4557-12345678900
 1_2_firstname_00b32ccg-1234-4167-12345678900 

没有得到另一个字符串?

Mong Zhu

您可以使用正则表达式:

List<string> allFileNames = new List<string>
{
    "1_2_firstname_00b32acd-1234-4567-12345678900_1597932388.zip",
    "1_2_firstname_00b32ace-1234-4568-12345678900_1597932318_id.zip",
    "1_2_firstname_00b32acf-1234-4557-12345678900_id_1597932358_id2.zip",
    "1_2_firstname_00b32ccg-1234-4167-12345678900_1597932331_id_id2_id3.zip",
};

string pattern =  @".*?\d{4}-\d{4}-\d{11}";

foreach (var element in allFileNames.Select(x => Regex.Match(fileName, pattern).Value))
{
    Console.WriteLine(element);
}

输出:

1_2_firstname_00b32ccg-1234-4167-12345678900
1_2_firstname_00b32ccg-1234-4167-12345678900
1_2_firstname_00b32ccg-127617205-1234-878900
1_2_firstname_00b32ccg-1276172040-1234-87106161061616106

解释:

.*? 匹配任何字符(非贪婪)

\d{4} 匹配一个数字的 4 次出现

- 火柴 -

\d{11} 匹配一个数字的 11 次出现

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章