我有以下正则表达式:
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具有更高的优先级。
答案 0 :(得分:4)
你应该能够通过“lazy”(与默认的“贪婪”)?
相比较来实现这一目标。试试这个:
Regex regex = new Regex(@"(?<g1>a?)(?<g2>a?)(?<g3>b??)(?<g4>b?)");