修改正则表达式组优先级

时间:2010-01-18 11:18:41

标签: c# regex

我有以下正则表达式:

Regex regex = new Regex(@"(?<g1>a?)(?<g2>a?)(?<g3>b?)(?<g4>b?)");

和一个字符串

string str = @"ab";

将此正则表达式应用于我得到的字符串时

 g1 -> "a", g2 -> "", g3 -> "b",  g4 -> ""

是否可以修改此正则表达式以获取

 g1 -> "a", g2 -> "", g3 -> "",  g4 -> "b"
? 那就是我希望g4比g3具有更高的优先级。

1 个答案:

答案 0 :(得分:4)

你应该能够通过“lazy”(与默认的“贪婪”)?相比较来实现这一目标。试试这个:

Regex regex = new Regex(@"(?<g1>a?)(?<g2>a?)(?<g3>b??)(?<g4>b?)");
相关问题