简单但难的正则表达式

本文关键字:正则表达式 简单 | 更新日期: 2023-09-27 18:04:54

我在一个文件中有一些这样的数据。

Start
Status:good<>
Status:bad<>
Status:dfsf<>
Status:gosdfsfod<>
Status:dogEatsCat<>
Some randomdata
End

<>只是状态信息的结束我只想获得最后的地位。这个是"dogEatsCat"

这个正则表达式返回给我所有的状态

Status:(.+?)<>

但是我只想得到最后一个

简单但难的正则表达式

然后在正则表达式之前使用贪婪捕获:

.*Status:(.+?)<>

(您可能需要切换到单行模式,以便.也匹配换行符。)

或者你可以使用从右到左模式来匹配你的正则表达式。

可以在这里找到两个选项的工作示例。

您可以使用您所拥有的正则表达式,但只注意最后的匹配

EDIT

或者,您可以捕获所有匹配并返回捕获的最后一个匹配。可以这样做:

Regex lastRegex = new Regex(@".*Status:(.+?)<>");
MatchCollection allMatches = lastRegex.Matches(sample);
if (allMatches.Count > 0)
{
    Console.WriteLine(allMatches[allMatches.Count-1].Groups[1].Value);
}