/// <summary> /// A non-capturing group /// </summary> /// <param name="innerExpression"></param> /// <returns></returns> public RegexPattern Phrase(RegexPattern innerExpression) { _content.Append($"(?:{innerExpression})"); return(this); }
/// <summary> /// Matches any single character not contained within /// </summary> /// <param name="innerExpression"></param> /// <returns></returns> public RegexPattern NegatedSet(RegexPattern innerExpression) { _content.Append($"[^{innerExpression}]"); return(this); }
/// <summary> /// A subset of the pattern that can be referenced as ordinal captures /// </summary> /// <param name="innerExpression"></param> /// <returns></returns> public RegexPattern Group(RegexPattern innerExpression) { _content.Append($"({innerExpression})"); return(this); }
/// <summary> /// A subset of the pattern that can be referenced as a named capture /// </summary> /// <param name="groupName"></param> /// <param name="innerExpression"></param> /// <returns></returns> public RegexPattern NamedGroup(string groupName, RegexPattern innerExpression) { _content.AppendFormat("(?<{1}>{0})", innerExpression, groupName); return(this); }
public RegexLazyQuantifier(RegexPattern quantifiedExpression) : base(quantifiedExpression) { }
internal RegexQuantifier(RegexPattern quantifiedExpression) { _quantifiedExpression = quantifiedExpression; }
public RegexPattern If(int unnamedCaptureToMatch, RegexPattern then, RegexPattern otherwise) { return(_precedingRegexPattern.RegEx($"(?({unnamedCaptureToMatch}){then}|{otherwise})")); }
public RegexPattern If(string namedGroupToMatch, RegexPattern then, RegexPattern otherwise) { return(_precedingRegexPattern.RegEx($"(?({namedGroupToMatch}){then}|{otherwise})")); }
public RegexPattern If(RegexPattern matched, RegexPattern then, RegexPattern otherwise) { return(_precedingRegexPattern.RegEx($"(?(?={matched}){then}|{otherwise})")); }
public RegexPattern Either(RegexPattern firstOption, RegexPattern secondOption) { return(_precedingRegexPattern.RegEx($"({firstOption}|{secondOption})")); }
internal RegexAlternation(RegexPattern precedingRegexPattern) { _precedingRegexPattern = precedingRegexPattern; }