Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式如何获取最后一个元素';两个句子之间的时间是多少_C#_Regex - Fatal编程技术网

C# 正则表达式如何获取最后一个元素';两个句子之间的时间是多少

C# 正则表达式如何获取最后一个元素';两个句子之间的时间是多少,c#,regex,C#,Regex,e、 g 我想得到下面的句子最后一次同意像图片 输入: Agree|AAA Agree 7/28 22:34,Agree|BBBB Agree 7/28 23:20,Agree|CCC Agree 7/29 07:41,Agree|JJJ Agree 7/29 07:45,Agree|DDD Agree 7/29 07:54,forward|EEE forward 7/29 07:54,forward|FFF forward 7/29 07:54,forward|GGG forward 7/29

e、 g
我想得到下面的句子最后一次同意像图片

输入:

Agree|AAA Agree 7/28 22:34,Agree|BBBB Agree 7/28 23:20,Agree|CCC Agree 7/29 07:41,Agree|JJJ Agree 7/29 07:45,Agree|DDD Agree 7/29 07:54,forward|EEE forward 7/29 07:54,forward|FFF forward 7/29 07:54,forward|GGG forward 7/29 07:54,forward|HHHH forward 7/29 07:54
预期产出:

7/29 07:54

我尝试过使用LINQ,但我只能像图片一样使用它

void Main()
{
    var input = "Agree|AAA Agree 7/28 22:34,Agree|BBBB Agree 7/28 23:20,Agree|CCC Agree 7/29 07:41,Agree|JJJ Agree 7/29 07:45,Agree|DDD Agree 7/29 07:54,forward|EEE forward 7/29 07:54,forward|FFF forward 7/29 07:54,forward|GGG forward 7/29 07:54,forward|HHHH forward 7/29 07:54";
    var output = input.Split('|')
        .Where(_ => _.Contains("Agree")).Select((e, index) => new {e,index})
        .OrderByDescending(_=>_.index)
        .Take(1);
}


这个正则表达式会起作用

Agree (\d{1,2}\/\d{1,2} \d{1,2}:\d{1,2})(?!.*Agree \d{1,2}\/\d{1,2} \d{1,2}:\d{1,2})
这意味着
Agree\d{1,2}\/\d{1,2}\d{1,2}:\d{1,2}
之后不出现任何
Agree\d{1,2}\/\d{1,2}\d{1,2}:\d{1,2}

然后将
7/29 07:54
提取到
lastAgree
变量中

string pattern = @"Agree (\d{1,2}\/\d{1,2} \d{1,2}:\d{1,2})(?!.*Agree \d{1,2}\/\d{1,2} \d{1,2}:\d{1,2})";           

// Get your match using pattern
var match = Regex.Match(text, pattern);

// Groups[1] is (\d{1,2}\/\d{1,2} \d{1,2}:\d{1,2})
var lastAgree = match.Groups[1].Value;