【发布时间】:2009-10-09 23:45:00
【问题描述】:
我正在尝试使用 C# 中的命名捕获编写一个正则表达式来解析 cron 作业。然而,问题是使用单引号和括号命名的捕获组的值都返回空白。例如,输入
*/15 * * * * * http://www.google.com/
这段代码:
Regex cronRe = new Regex(@"(?<minutes>[\d\*\-,]+) (?<hours>[\d\*\-,]+) (?<days>[\d\*\-,]+) (?<months>[\d\*\-,]+) (?<dotw>[\d\*\-,]+) (?<years>[\d\*\-,]+) (?<command>[\d\*\-,]+)");
//loop through jobs and do them
for (int i = 0; i < lines.Length; i++)
{
Match line = logRe.Match(lines[i]);
bool runJob = true;
for (int j = 0; j < line.Groups.Count; j++)
{
Console.Write(j.ToString() + ": " + line.Groups[j].Value + "\n");
}
Console.Write("named group minutes: " + line.Groups["minutes"].Value);
}
返回:
0: */15 * * * * * http://www.google.com
1: */15 *
2:* 3:*
4:*
5:*
6:http://www.google.com
命名组分钟:
有什么建议吗?
【问题讨论】:
-
您希望它返回什么?抱歉不熟悉 cron 作业...您能否再发布几个示例来说明您将要解析的内容?
-
在您的示例中,您已经定义了 CronRe,但在循环中您使用的是 LogRe.. 是示例中的拼写错误还是您在那里使用了不同的正则表达式?