首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简单但困难的正则表达式

简单但困难的正则表达式
EN

Stack Overflow用户
提问于 2011-08-09 01:28:02
回答 3查看 90关注 0票数 1

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

代码语言:javascript
运行
复制
Start
Status:good<>
Status:bad<>
Status:dfsf<>
Status:gosdfsfod<>
Status:dogEatsCat<>
Some randomdata
End

<>只是状态信息的结尾,我只想得到最新的状态。这个是"dogEatsCat“。

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

代码语言:javascript
运行
复制
Status:(.+?)<>

但我只想要最后一个。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-09 01:31:08

编辑

或者,您可以获取所有匹配项并返回捕获的最后一个匹配项。这可以通过like the following完成

代码语言:javascript
运行
复制
Regex lastRegex = new Regex(@".*Status:(.+?)<>");
MatchCollection allMatches = lastRegex.Matches(sample);
if (allMatches.Count > 0)
{
    Console.WriteLine(allMatches[allMatches.Count-1].Groups[1].Value);
}
票数 1
EN

Stack Overflow用户

发布于 2011-08-09 01:30:31

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

代码语言:javascript
运行
复制
.*Status:(.+?)<>

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

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

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

票数 3
EN

Stack Overflow用户

发布于 2011-08-09 01:30:42

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6986045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档