Проблема регулярных выражений ASP.Net для жадных квантификаторов - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть приложение asp.net, где строка создается следующим образом.

string abc;
abc="vindo|vindo|vind?40|vind?40|vincent van uden|vilm|vilm|slim?new|compas|*|darkc?loud";

Regex ABCRegex = new Regex(abc);

but It throws error.
   at System.Text.RegularExpressions.RegexParser.ScanRegex()
   at System.Text.RegularExpressions.RegexParser.Parse(String re, RegexOptions op)
   at System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions options, Boolean useCache).

Я знаю, что причина в том, что *, +,?, {Num, num} являются «жадными квантификаторами»

но есть ли способ создать RegEx с использованием той же строки или можно заменить эти жадные квантификаторы другими символами?

Я не хочу менять свою строку.

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Попробуйте эту строку:

abc = @"vindo|vindo|vind?40|vind?40|vincent van uden|vilm|vilm|slim?new|compas|\*|darkc?loud";
1 голос
/ 24 ноября 2011

Просто удалите |* из вашего регулярного выражения или замените его на |.*, но это не имеет смысла.Совет: используйте Regulator для отладки RegEx.

...