C# 如何使用C仅从文件名中提取日期#

C# 如何使用C仅从文件名中提取日期#,c#,regex,ssis,etl,script-task,C#,Regex,Ssis,Etl,Script Task,我有一种情况,我需要从文件名中提取日期,其一般模式是[XXXX_bbbbbb]\u yyy-MM-DD[.fileExtension]示例销售人员\u 2019-05-03.xlsx 我在SSIS脚本任务组件中使用c#来实现这一点 下面是我的代码: public void Main() { // TODO: Add your code here string pat; string date; string filename = 'Sales_pers

我有一种情况,我需要从文件名中提取日期,其一般模式是
[XXXX_bbbbbb]\u yyy-MM-DD[.fileExtension]
示例
销售人员\u 2019-05-03.xlsx

我在SSIS脚本任务组件中使用c#来实现这一点

下面是我的代码:

public void Main()
{

            // TODO: Add your code here
   string pat;
   string date;
   string filename = 'Sales_person_2019-05-03.xlsx'

   // Get the Date part from the file name only
   pat = @"[0-9]{2}[0-9]{2}[0-9]{4}";
   Regex r = new Regex(pat, RegexOptions.IgnoreCase);
   date = r.Match(filename);
   MessageBox.Show(date.ToString());}


    Dts.TaskResult = (int)ScriptResults.Success;
}

但这是行不通的。有人能帮忙吗。C#

新手无需正则表达式即可实现这一点,只需使用字符串函数(
IndexOf()
Substring()
):

由于您正在处理固定模式
[XXXX_bbbbbb]\u YYYY-MM-DD[.fileExtension]
,只需检索位于第二个下划线之后的10个字符

public void Main()
{
字符串filename=“销售人员2019-05-03.xlsx”;
//仅从文件名获取日期部分
字符串filedate=filename.Substring(filename.IndexOf(“”),filename.IndexOf(“”“)+1)+1,10);
DateTime dt=DateTime.ParseExact(filedate,“yyyy-MM-dd”,System.Globalization.CultureInfo.InvariantCulture,System.Globalization.datetimestyle.None)
Dts.TaskResult=(int)ScriptResults.Success;
}

基本上,我希望以“2019/05/02”格式获取日期“2019-05-03”thanks@user3011898如果它能解决问题。点击答案左侧的标记即可接受