Tag: regex greedy

正则表达式贪心问题(C#)

我有一个输入字符串,如“=== text ===和=== text ===”,我想用相应的html标签替换wiki语法。 输入: ===text=== and ===text=== 理想输出: text and text 但是使用以下代码我得到这个输出: var regex = new Regex(“—(.+)—“); var output = regex.Replace(“===text=== and ===text===”, “$1”); text=== and ===text 我知道问题是我的正则表达式与贪婪相匹配。 但是如何让他们不贪心。 谢谢你,亲切的问候。 丹尼

正则表达式只在左侧贪婪(.net)

我试图捕获两个字符串之间的匹配。 例如,我正在寻找Q和XYZ之间出现的所有文本,使用“最快”匹配(不继续向外扩展)。 这个字符串: 马戏团问你好Q SOMETEXT XYZ今天是XYZ好的XYZ日 应该返回: Q SOMETEXT XYZ 但相反,它返回: 问你好Q SOMETEXT XYZ 这是我正在使用的表达式: Q。*?XYZ 它向左走太远了。 当我在星号后使用问号时,它在骑行方面工作正常。 我怎么能在左侧做同样的事情,并在我第一次离开Q后停下来,让它与右侧的工作方式相同? 我已经尝试过来自http://msdn.microsoft.com/en-us/library/az24scfc.aspx的问号和其他符号,但有些东西我只是想不通。 我是一个正则表达式的新手,所以对此有任何帮助将不胜感激!

C#Regex中的贪婪,非贪婪,全贪婪匹配

如何在以下示例中获取所有匹配项: // Only “abcd” is matched MatchCollection greedyMatches = Regex.Matches(“abcd”, @”ab.*”); // Only “ab” is matched MatchCollection lazyMatches = Regex.Matches(“abcd”, @”ab.*?”); // How can I get all matches: “ab”, “abc”, “abcd” PS:我希望以通用方式获得所有比赛。 上面的例子只是一个例子。