QRegExp invertieren
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
QRegExp invertieren
Hallo, ich habe diesen Ausruck :QRegExp("d4.dll$"), nur soll er sich genau anders rum verhalten.(Alles liefern was nicht dem entspricht)
Hat jemand eine Idee?
"!d4.dll$" "d4.dll!$" oder "!(d4.dll$)" geht leider nicht:(
Hat jemand eine Idee?
"!d4.dll$" "d4.dll!$" oder "!(d4.dll$)" geht leider nicht:(
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
Probier mal Kanns aber gerade nicht testen...
Code: Alles auswählen
(?!d4.dll)$-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
Liess mir jetzt doch keine Ruhe
Hiermit sollte es gehen, zumindest verliefen Tests mit EditPad Pro positiv.
Code: Alles auswählen
^.*[^(d4\.dll$)]$-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
Nee geht leider auch nicht.
weder "^.*[^(d4\\.dll$)]$" noch "^.*[^(d4\.dll$)]$"
Hier mal noch mehr Infos.
Das steht in der Stringliste:
und alle Debug Bibliotheken sollen raus.(enden ja auf d4.dll)
Also kurzerhand Liste=Liste.filter()
weder "^.*[^(d4\\.dll$)]$" noch "^.*[^(d4\.dll$)]$"
Hier mal noch mehr Infos.
Das steht in der Stringliste:
Code: Alles auswählen
("qsa1.dll", "qsad1.dll", "Qt3Support4.dll", "Qt3Supportd4.dll", "QtAssistantClient4.dll", "QtAssist
antClientd4.dll", "QtCore4.dll", "QtCored4.dll", "QtDesigner4.dll", "QtDesignerComponents4.dll", "Qt
DesignerComponentsd4.dll", "QtDesignerd4.dll", "QtGui4.dll", "QtGuid4.dll", "QtNetwork4.dll", "QtNet
workd4.dll", "QtOpenGL4.dll", "QtOpenGLd4.dll", "QtSql4.dll", "QtSqld4.dll", "QtSvg4.dll", "QtSvgd4.
dll", "QtTest4.dll", "QtTestd4.dll", "QtXml4.dll", "QtXmld4.dll")
Also kurzerhand Liste=Liste.filter()
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
Ich hätte mir schon längst sowas gebastelt:
Sogar mit RegExp, wenn es denn unbedingt sein muss
Ohne wäre es wohl noch schneller.
Code: Alles auswählen
// sl ist die StringList mit den ganzen DLLs
QStringList::iterator it = sl.begin();
while (it != sl.end())
{
if ((*it).indexOf(QRegExp("d4\\.dll$")) > -1)
it = sl.erase(it);
else
++it;
}
Wenn du alles, was auf "d4.dll" endet löschen willst, warum verwendest du nicht
Geht sicher schneller als die Auswertung einer QRegExp 
Grüße
Franz
Code: Alles auswählen
bool QString::endsWith ( const QString & s, Qt::CaseSensitivity cs = Qt::CaseSensitive ) constGrüße
Franz
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
Filtern mit RegExp [gelöst]
Sucht ihr sowas hier?
\Ralf
Code: Alles auswählen
QRegExp rx (".*([^d][^4]|[^d].|.[^4])\.dll");
QStringList filtered = dlls.filter(rx);
Zuletzt geändert von neuschi am 23. Mai 2007 11:28, insgesamt 1-mal geändert.
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten: