Group() public method

public Group ( int n, StringBuilder sb ) : bool
n int
sb StringBuilder
return bool
Beispiel #1
0
 public static int ReplaceFirst(Matcher m,Substitution substitution,TextBuffer dest)
 {
     int c=0;
     if(m.Find()) {
         if(m.Start>0) m.Group(Matcher.PREFIX,dest);
         substitution.AppendSubstitution(m,dest);
         c++;
         m.SetTarget(m,Matcher.SUFFIX);
     }
     m.Group(Matcher.TARGET,dest);
     return c;
 }
Beispiel #2
0
 public static int Replace(Matcher m,Substitution substitution,TextBuffer dest)
 {
     bool firstPass=true;
     int c=0;
     while(m.Find()) {
         if(m.End==0 && !firstPass) continue;  //allow to Replace at "^"
         if(m.Start>0) m.Group(Matcher.PREFIX,dest);
         substitution.AppendSubstitution(m,dest);
         c++;
         m.SetTarget(m,Matcher.SUFFIX);
         firstPass=false;
     }
     m.Group(Matcher.TARGET,dest);
     return c;
 }
Beispiel #3
0
 static Element MakeQueue(Matcher refMatcher)
 {
     if(refMatcher.Find()){
         Element element;
         if(refMatcher.IsCaptured(NAME_ID)){
             char c=refMatcher.CharAt(0,NAME_ID);
             if(c=='&') {
                 element = new IntRefHandler(refMatcher.Prefix, 0);
             } else if(char.IsDigit(c)){
                 element = new IntRefHandler(refMatcher.Prefix, Convert.ToInt32(refMatcher.Group(NAME_ID)));
             } else
                 element = new StringRefHandler(refMatcher.Prefix, refMatcher.Group(NAME_ID));
         } else {
             //escaped char
             element = new PlainElement(refMatcher.Prefix, refMatcher.Group(ESC_ID));
         }
         refMatcher.SetTarget(refMatcher, Matcher.SUFFIX);
         element.next = MakeQueue(refMatcher);
         return element;
     } else return new PlainElement(refMatcher.Target);
 }