Seite 1 von 1

QRegExp

Verfasst: 18. September 2007 22:59
von Nahasapeemapetilon20
Hallo ich durchsuche mit

Code: Alles auswählen

QRegExp  tplRA("[{][\\$][a-zA-Z]*[}]");
eine String und möchte alle strings bekommen die z.B:
diese Form haben: {$xWert} Das funktioniert auch wunderbar
z.B hab ich den folgenden String "irgend was {$xW} irgendwas {$xW}"
da bekomme ich alle meine platzhalter allerdings wenn ich
folgenden string hab "irgendwas ({$xW},{$yW}) irgendwas "
bekomme ich nur den ersten PLatzhalter aber nicht den zweiten erst wenn ich noch mal über den Stríng darüber gehe ....wieso ist das so was mach ich falsch hier der code:

Code: Alles auswählen

  int  len, index = 0;
  QString tLine ="irgendwas";
  while ( ( index = tplRA.match( tLine, index, &len ) ) >= 0 )
       {
         sOption = tLine.mid( index, len );   
         qDebug("%s %i %i",sOption.latin1(),index,len);     
         if(mOptionRef.contains(sOption))                    
           tLine.replace(index,len,mOptionRef[sOption]);                  
         else
            tLine.replace(index,len,"");                           
         index +=len;
       }
    qDebug("%s",tLine.latin1());
ich verwende qt3.3
danke

Verfasst: 20. September 2007 19:37
von Nahasapeemapetilon20
ok ich hab den Fehler gefunden :D ...falls es jemanden interessiert.....
ich hab am ende der Schleife immer die Länge des gefundenen Platzhalters drauf addiert ...das war natürlich Blödsinn ...es musste natürlich die Länge von den String den ich einfüge drauf gerechnet werden

Code: Alles auswählen

....
 Index += mOptionRef[sOption].length();
.....
lg