我在文件中有类似的数据。
Start
Status:good<>
Status:bad<>
Status:dfsf<>
Status:gosdfsfod<>
Status:dogEatsCat<>
Some randomdata
End
&LT;&GT;只是状态信息的结束 我只是想获得最后的状态。这一个“dogEatsCat”。
这个正则表达式让我恢复了所有的状态。
Status:(.+?)<>
但我只是想得到最后一个。
答案 0 :(得分:3)
然后在正则表达式之前使用贪婪捕获:
.*Status:(.+?)<>
(您可能需要切换到单行模式,以便.
也匹配换行符。)
或者,您可以使用从右到左模式进行正则表达式匹配。
可以找到两个选项的工作示例here。
答案 1 :(得分:2)
你可以使用你拥有的正则表达式,但只注意最后一场比赛。
答案 2 :(得分:1)
修改强>
或者,您可以获取所有匹配并返回捕获的最后一个匹配项。这可以完成like the following:
Regex lastRegex = new Regex(@".*Status:(.+?)<>");
MatchCollection allMatches = lastRegex.Matches(sample);
if (allMatches.Count > 0)
{
Console.WriteLine(allMatches[allMatches.Count-1].Groups[1].Value);
}