【发布时间】:2012-10-16 21:33:57
【问题描述】:
这是我的输入:
xxx999xxx888xxx777xxx666yyy
xxx222xxx333xxx444xxx555yyy
这是表达式:
xxx.*xxx(?<matchString>(.(?!xxx.*xxx))*?)xxx.*yyy
它返回 444。
我希望它同时返回 444 和 777,但我对此无能为力。
我有 ! 排除项,因此它只匹配左侧最里面的内容(当我只搜索一个结果时效果很好,这是大多数时候)。但是,我有一种感觉,这与它在这种情况下跳过第一个结果的原因有关。我不知道从这里去哪里。
我一直在这里测试: http://regexlib.com/RETester.aspx(启用“SingleLine”和“Explicit Capture”)
任何建议将不胜感激!
【问题讨论】:
-
您还应该发布您的 C# 代码。我感觉你无意中覆盖了结果。
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
标签: c# .net regex regex-greedy non-greedy