如何从文件名中检索年月日,如
MONTUE-API-202310031200340313.TXT
以下是不会改变的图案
MONTUE-API-{YEAR}{MONTH}{DAY}{TIMESTAMP}.TXT
我想从这个文件名中获取
{YEAR}{MONTH}{DAY}
MONTUE-API-202310031200340313.TXT
我正在尝试将输出设为
20231003
。
谢谢你
您可以通过获取“MONTUE-API-”后面的长度并提取 YYYYMMDD 的 8 位数字来利用
substring
。
C# 示例:
string fileName = "MONTUE-API-202310031200340313.TXT";
int startIndex = "MONTUE-API-".Length;
string dateTimeString = fileName.Substring(startIndex, 8);
简单的方法是使用
Regex
并在 MONTUE-API-
字符串后查找 8 位数字。
示例是 C#:
var match = Regex.Match(fileName, @"MONTUE-API-(\d{8})");
if(match.Success)
{
var value = match.Groups[1].Value;
}
您可以更进一步,通过使用更多组来检索
year
month
day
:
var match = Regex.Match(fileName, @"MONTUE-API-(\d{4})(\d{2})(\d{2})");
if(match.Success)
{
var year = match.Groups[1].Value;
var month = match.Groups[2].Value;
var day = match.Groups[3].Value;
}
我在问题中使用了
substring
,如Johnathan Barclay所评论,以达到我想要的结果
var output = input.Substring(11, 8);