我有以下文件名:
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
没有得到另一个字符串?
您可以使用正则表达式:
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] 删除。
我来说两句