public string MatcherRegEx(bool hasNext) { // <p (id=#([0-9.*{6})|sdf).*> var regExp = new StringBuilder(); regExp.Append(Name) .Append(Consts.ANY_NORMAL_WHITESPACES) .Append("=") .Append(Consts.ANY_NORMAL_WHITESPACES) .Append("\"") .Append(Consts.OPEN_ATTRIBUTE); bool hasRegExps = AllowedRegExps.Any(); if (AllowedRegExps.Count() + AllowedValues.Count() > 0) { foreach (string allowedValue in AllowedValues) { regExp.Append(DocumentTag.EscapeRegularExpressionCharacters(allowedValue)); if (AllowedValues.Last() != allowedValue || hasRegExps) { regExp.Append(Consts.ATTRIBUTE_DIVIDER); } } foreach (string allowedRegExp in AllowedRegExps) { regExp.Append(allowedRegExp); if (AllowedRegExps.Last() != allowedRegExp) { regExp.Append(Consts.ATTRIBUTE_DIVIDER); } } if (this.AllowedRegExps.Count() + this.AllowedValues.Count() > 0) { regExp.Append(Consts.CLOSE_ATTRIBUTE); } regExp.Append("\"" + Consts.ANY_NORMAL_WHITESPACES); if (hasNext) { regExp.Append(Consts.ATTRIBUTE_DIVIDER); } } return(regExp.ToString()); }