QRegExp

Alles rund um die Programmierung mit Qt
Antworten
Nahasapeemapetilon20
Beiträge: 20
Registriert: 13. August 2007 18:42

QRegExp

Beitrag 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
Nahasapeemapetilon20
Beiträge: 20
Registriert: 13. August 2007 18:42

Beitrag 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
Antworten