C# 易而难的正则表达式

C# 易而难的正则表达式,c#,.net,regex,C#,.net,Regex,我在一个文件中有一些类似的数据 Start Status:good<> Status:bad<> Status:dfsf<> Status:gosdfsfod<> Status:dogEatsCat<> Some randomdata End 只是状态信息的结尾 我只想知道最后的状态。这是一只狗 这个正则表达式将返回我所有的状态 Status:(.+?)<> 但我只想得到最后一个。然后在正则表达式之前使用贪婪捕获: .*

我在一个文件中有一些类似的数据

Start
Status:good<>
Status:bad<>
Status:dfsf<>
Status:gosdfsfod<>
Status:dogEatsCat<>
Some randomdata
End
只是状态信息的结尾 我只想知道最后的状态。这是一只狗

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

Status:(.+?)<>

但我只想得到最后一个。然后在正则表达式之前使用贪婪捕获:

.*Status:(.+?)<>
您可能需要切换到单线模式,以便。也匹配换行符

或者,您可以使用从右到左模式进行正则表达式匹配


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

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

.*Status:(.+?)<>
您可能需要切换到单线模式,以便。也匹配换行符

或者,您可以使用从右到左模式进行正则表达式匹配


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

您可以使用现有的正则表达式,但只关注最后一个匹配。

您可以使用现有的正则表达式,但只关注最后一个匹配。

编辑

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

编辑

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


@Brad Christie不要忘记这一行,您只能使用第一组,而不能使用完整的匹配,例如lastMatch.Groups[1].你的价值example@BradChristie在你的第二个例子中,你没有切换到单线模式,你必须添加一个RegexOptions。单线或从右到左添加一个RegexOptions。从右到左只是强调这是一个很好的信息@Brad Christe您可以看到两个备选方案都有效@Brad Christie不要忘记一行,您只能使用第一组,而不能使用完整的匹配,例如lastMatch.Groups[1].你的价值example@BradChristie在你的第二个例子中,你没有切换到单线模式,你必须添加一个RegexOptions。单线或从右到左添加一个RegexOptions。从右到左只是强调这是一个很好的信息@布拉德·克里斯特你可以看到两种选择都是可行的