private static void GenerateFromNegatedSet(StringBuilder sb, ContentOptions contentOptions) { var alternates = contentOptions.Content.Replace("^", ""); var possibles = _AllPossibleCharacters.RegexReplace("[" + alternates + "]", ""); for (int x = 0; x < contentOptions.Repeat; x++) { var possible = possibles[Random.Next(0, possibles.Length)]; sb.Append(possible); } }
private static ContentOptions GetContentOptions(string characters, ref int index, char openingContainerChar, char closingContainerChar) { var result = new ContentOptions(); result.Content = GetContent(characters, ref index, openingContainerChar, closingContainerChar); if (result.Content[0].Equals(_Negation)) { result.IsNegated = true; result.Content = result.Content.Replace("^", ""); } if (characters.Length > index && characters[index].Equals(_Quantifier_Start)) { var repeatExpression = GetContent(characters, ref index, _Quantifier_Start, _Quantifier_End); result.Repeat = GetRepeatValueFromRepeatExpression(repeatExpression); } result.ContainsAlternation = ContainsAlternations(result.Content); return(result); }
private static ContentOptions GetContentOptions(string characters, ref int index, char openingContainerChar, char closingContainerChar) { var result = new ContentOptions(); result.Content = GetContent(characters, ref index, openingContainerChar, closingContainerChar); if (result.Content[0].Equals(_Negation)) { result.IsNegated = true; result.Content = result.Content.Replace("^", ""); } if (characters.Length > index && characters[index].Equals(_Quantifier_Start)) { var repeatExpression = GetContent(characters, ref index, _Quantifier_Start, _Quantifier_End); result.Repeat = GetRepeatValueFromRepeatExpression(repeatExpression); } result.ContainsAlternation = ContainsAlternations(result.Content); return result; }
private static void GenerateFromAlternatedPattern(StringBuilder sb, NamedPatterns namedPatterns, string exp, ContentOptions contentOptions) { var alternates = exp.Split(_Alternation); for (int x = 0; x < contentOptions.Repeat; x++) { exp = alternates[Random.Next(0, alternates.Length)]; sb.Append(GenerateFromPattern(exp, namedPatterns)); } }