从字符串中提取日期时间
Extract DateTime from string
当遍历列表中的元素时<string>
我想提取第一个日期时间。
这是一个示例行,在本例中月份是一位数,月份也可以是两位数,例如12 但不说 01。
string line = "\\SomeServer\HTTP\demo1\index.cfm 4 KB CFM " +
"File 2/19/2019 3:48:21 PM " +
"2/19/2019 1:05:53 PM 2/19/2019 1:05:53 PM 5";
预期的结果是
2/19/2019 3:48:21 下午
我在这里查看了各种正则表达式代码示例,以下是仅正确处理个位数月份并且不 return 日期的时间部分的代码示例(因为我不知道什么模式使用)。
var line = "\\SomeServer\HTTP\FolderName\index.cfm 4 KB CFM " +
"File 02/19/2019 3:48:21 PM " +
"2/19/2019 1:05:53 PM 2/19/2019 1:05:53 PM 5";
var match = Regex.Match(line,
@"\d{2}\/\d{2}\/\d{4}");
var dateValue = match.Value;
if (!string.IsNullOrWhiteSpace(dateValue))
{
var dateTime = DateTime.ParseExact(dateValue,
"MM/dd/yyyy",
CultureInfo.CurrentCulture);
Console.WriteLine(
dateTime.ToString(CultureInfo.InvariantCulture));
}
最后,我在发布此问题时查看了推荐的问题,并且几乎没有创建正则表达式的专业知识。我感谢任何建议 and/or 代码示例让我朝着正确的方向前进。
您可以使用
\b\d{1,2}/\d{1,2}/\d{4}\s\d{1,2}:\d{2}:\d{2}\s?[AP]M\b
见regex demo。 Regex.Match
将为您赢得第一场比赛。
详情
\b
- 单词边界
\d{1,2}/\d{1,2}/\d{4}
- 一位或两位,/
,一位或两位,/
,四位
\s
- 一个空格
\d{1,2}:\d{2}:\d{2}
- 1 位或 2 位数字,:
,2 位数字,:
,2 位数字
\s?
- 一个可选的空格
[AP]M
- AM
或 PM
\b
- 单词边界。
当遍历列表中的元素时<string>
我想提取第一个日期时间。
这是一个示例行,在本例中月份是一位数,月份也可以是两位数,例如12 但不说 01。
string line = "\\SomeServer\HTTP\demo1\index.cfm 4 KB CFM " +
"File 2/19/2019 3:48:21 PM " +
"2/19/2019 1:05:53 PM 2/19/2019 1:05:53 PM 5";
预期的结果是
2/19/2019 3:48:21 下午
我在这里查看了各种正则表达式代码示例,以下是仅正确处理个位数月份并且不 return 日期的时间部分的代码示例(因为我不知道什么模式使用)。
var line = "\\SomeServer\HTTP\FolderName\index.cfm 4 KB CFM " +
"File 02/19/2019 3:48:21 PM " +
"2/19/2019 1:05:53 PM 2/19/2019 1:05:53 PM 5";
var match = Regex.Match(line,
@"\d{2}\/\d{2}\/\d{4}");
var dateValue = match.Value;
if (!string.IsNullOrWhiteSpace(dateValue))
{
var dateTime = DateTime.ParseExact(dateValue,
"MM/dd/yyyy",
CultureInfo.CurrentCulture);
Console.WriteLine(
dateTime.ToString(CultureInfo.InvariantCulture));
}
最后,我在发布此问题时查看了推荐的问题,并且几乎没有创建正则表达式的专业知识。我感谢任何建议 and/or 代码示例让我朝着正确的方向前进。
您可以使用
\b\d{1,2}/\d{1,2}/\d{4}\s\d{1,2}:\d{2}:\d{2}\s?[AP]M\b
见regex demo。 Regex.Match
将为您赢得第一场比赛。
详情
\b
- 单词边界\d{1,2}/\d{1,2}/\d{4}
- 一位或两位,/
,一位或两位,/
,四位\s
- 一个空格\d{1,2}:\d{2}:\d{2}
- 1 位或 2 位数字,:
,2 位数字,:
,2 位数字\s?
- 一个可选的空格[AP]M
-AM
或PM
\b
- 单词边界。