Изменение приоритета регулярных выражений - PullRequest
3 голосов
/ 18 января 2010

У меня есть следующее регулярное выражение:

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

и строка

<code>string str = @"ab";

При применении этого регулярного выражения к строке я получаю

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

Можно ли изменить это регулярное выражение, чтобы получить

<code> g1 -> "a", g2 -> "", g3 -> "",  g4 -> "b"
? То есть я хочу иметь более высокий приоритет для g4, чем для g3.

1 Ответ

4 голосов
/ 18 января 2010

Этого можно достичь с помощью « lazy » (по сравнению с «жадным» по умолчанию) ?. Попробуйте это:

Regex regex = new Regex(@"(?<g1>a?)(?<g2>a?)(?<g3>b??)(?<g4>b?)");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...