从字符串中提取日期值
Extracting a Date value from a string
论坛。
我的代码从 excel 文件读取并在变量 'textContainingDate' 中获取以下字符串:
"Employee Filter: All Employees; Time Entry Dates: 01/07/2016-01/07/2016; Exceptions: All Exceptions"
我想做的是从字符串中提取日期值。虽然有两个日期要读作一个日期范围,但是这两个日期总是相同的。我的想法是,不管在什么情况下,我都会满足于第一次约会。
var dateTime = DateTime.ParseExact(textContainingDate, "MM/dd/yyyy", CultureInfo.CurrentCulture);
我尝试使用上述语句,它是我从其他 Whosebug 问题和 Google 搜索文章中拼凑而成的。根据我的阅读,我认为它失败了,因为它只需要一个日期字符串。
任何关于解决方案的建议and/or 向阅读哪些文本以找到解决方案的方向表示赞赏。
您可以使用 Regex.Match
获取您遇到的第一个日期字符串。此方法 returns 与输入字符串中的正则表达式模式匹配的第一个子字符串。
string stringWithDate = "Employee Filter: All Employees; Time Entry Dates: 01/07/2016-01/07/2016; Exceptions: All Exceptions";
Match match = Regex.Match(stringWithDate, @"\d{2}\/\d{2}\/\d{4}");
string date = match.Value;
if (!string.IsNullOrEmpty(date)) {
var dateTime = DateTime.ParseExact(date, "MM/dd/yyyy", CultureInfo.CurrentCulture);
Console.WriteLine(dateTime.ToString());
}
正则表达式 \d{2}\/\d{2}\/\d{4}
的作用:
var regex = new Regex(@"\d{2}\/\d{2}\/\d{4}");
foreach (Match m in regex.Matches(line))
{
DateTime dt;
if (DateTime.TryParseExact(m.Value, "MM/dd/yyyy", null, DateTimeStyles.None, out dt))
remittanceDateArr[chequeNo - 1] = dt.ToString("MM/dd/yyyy");
rtbExtract.Text = rtbExtract.Text + remittanceDateArr[chequeNo - 1] + "\n";
}
论坛。
我的代码从 excel 文件读取并在变量 'textContainingDate' 中获取以下字符串:
"Employee Filter: All Employees; Time Entry Dates: 01/07/2016-01/07/2016; Exceptions: All Exceptions"
我想做的是从字符串中提取日期值。虽然有两个日期要读作一个日期范围,但是这两个日期总是相同的。我的想法是,不管在什么情况下,我都会满足于第一次约会。
var dateTime = DateTime.ParseExact(textContainingDate, "MM/dd/yyyy", CultureInfo.CurrentCulture);
我尝试使用上述语句,它是我从其他 Whosebug 问题和 Google 搜索文章中拼凑而成的。根据我的阅读,我认为它失败了,因为它只需要一个日期字符串。
任何关于解决方案的建议and/or 向阅读哪些文本以找到解决方案的方向表示赞赏。
您可以使用 Regex.Match
获取您遇到的第一个日期字符串。此方法 returns 与输入字符串中的正则表达式模式匹配的第一个子字符串。
string stringWithDate = "Employee Filter: All Employees; Time Entry Dates: 01/07/2016-01/07/2016; Exceptions: All Exceptions";
Match match = Regex.Match(stringWithDate, @"\d{2}\/\d{2}\/\d{4}");
string date = match.Value;
if (!string.IsNullOrEmpty(date)) {
var dateTime = DateTime.ParseExact(date, "MM/dd/yyyy", CultureInfo.CurrentCulture);
Console.WriteLine(dateTime.ToString());
}
正则表达式 \d{2}\/\d{2}\/\d{4}
的作用:
var regex = new Regex(@"\d{2}\/\d{2}\/\d{4}");
foreach (Match m in regex.Matches(line))
{
DateTime dt;
if (DateTime.TryParseExact(m.Value, "MM/dd/yyyy", null, DateTimeStyles.None, out dt))
remittanceDateArr[chequeNo - 1] = dt.ToString("MM/dd/yyyy");
rtbExtract.Text = rtbExtract.Text + remittanceDateArr[chequeNo - 1] + "\n";
}