public virtual string ToRegexPattern()
{
string result;
if (MinOccurrenceCount == 0 && MaxOccurrenceCount == 1)
{
result = "?";
}
else if (MinOccurrenceCount == 0 && MaxOccurrenceCount == null)
{
result = "*";
}
else if (MinOccurrenceCount == 1 && MaxOccurrenceCount == null)
{
result = "+";
}
else if (MinOccurrenceCount == MaxOccurrenceCount)
{
result = string.Format(CultureInfo.InvariantCulture, "{{{0}}}", MinOccurrenceCount);
}
else if (MaxOccurrenceCount == null)
{
result = string.Format(CultureInfo.InvariantCulture, "{{{0},}}", MinOccurrenceCount);
}
else
{
result = string.Format(CultureInfo.InvariantCulture, "{{{0},{1}}}", MinOccurrenceCount, MaxOccurrenceCount);
}
if (IsLazy)
{
result += "?";
}
return result;
}