简单但难的正则表达式
本文关键字:正则表达式 简单 | 更新日期: 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);
}