Впервые я использую проект Fare для генерации строки в соответствии с выражением регулярного выражения.
Строка регулярного выражения "a {1,5000}" должна соответствовать последовательности "a" длиной от 1 до 5000 символов. Та же строка регулярного выражения, используемая с классом Xeger, должна генерировать последовательность строк длиной от 1 до 5000 символов.
Этот очень простой код генерирует "a {1,5000}" 100 раз.
string regex = "a{1,5000}";
Xeger xeger = new Xeger(regex, new Random());
for (int i = 0; i < 100; ++i)
Console.Write(i + "-" + xeger.Generate() + " ");
Поскольку я указал {1,5000}, я ожидал бы, что по крайней мере какая-то строка будет очень длинной, но нет, вот что я получаю:
0-ааа 1-аа 2-аа3-а 4-ааа 5-а 6-ааа 7-а 8-а 9-а 10-ааа 11-аа 12-аа 13-аа 14-а 15-аа 16-аа 17-аааааааааааа 18-а 19-20-ааа 21-ааа 22-а 23-а 24-аааа 25-а 26-аааааааа 27-ааа 28-а 29-а 30-ааа 31-аааа 32-а 33-ааа 34-а 35-ааа 36-аааа 37-а 38-а 39-аа 40-аа 41-а 42-аа 43-а 44-а 45-ааа 46-а 47-аа 48-аа 49-аа 50-а 51-а 52-а53-а 54-а 55-а 56-ааааа 57-аа 58-а 59-а 60-а 61-аа 62-а 63-а 64-а 65-аа 66-аааа 67-аа 68-аа 69-аа 70-а 71-а 72-а 73-а 74-а 75-аа 76-аа 77-аа 78-ааа 79-а 80-ааа 81-аа 82-аа 83-аа 84-а 85-а 86-а 87-аа 88-аа 89-аааа 90-а 91-ааа 92-ааа 93-аа 94-аа 95-а 96-ааа 97-а 98-а 99-аааа
Как вы можете видеть, самое длинное происшествие12 символов в длину. Где проблема?