2016-07-21 17 views
0

Ich bin auf der Suche nach einer C++ Template-Bibliothek, die mir helfen kann, Strings, ganz wie reguläre Ausdrücke zu filtern. Ich benutze die QT Creator IDE.C++ Textfilter Vorlage Bibliothek/Engine

Zum Beispiel habe ich eine "11,[7,8]495???????" Vorlage und ich möchte nur Zeichenfolgen, die 11 Zeichen haben, beginnend mit 7 oder 8, gefolgt von 495 und alles andere für die letzten 7 zu passieren.

Vielen Dank.

+0

Warum verwenden Sie keine regulären Ausdrücke? – user2393256

+0

Qt hat alle dafür, zum Beispiel [qregularexpression] (http://doc.qt.io/qt-5/qregularexpression.html#details). – folibis

+0

Wenn Sie nach etwas wie regulären Ausdrücken suchen, warum nicht mit regulären Ausdrücken? Wenn Sie Qt verwenden, können Sie QRegExp verwenden – wasthishelpful

Antwort

0

Um die Leistung zu verwenden QRegExp zu verbessern, um eine Zeichenfolge zu überprüfen: http://doc.qt.io/qt-5.7/qregexp.html

Einige Beispiele:

Spiele ganzen Zahlen von 0 bis 99

QRegExp rx("^\\d\\d?$"); // match integers 0 to 99 
rx.indexIn("123");   // returns -1 (no match) 
rx.indexIn("-6");   // returns -1 (no match) 
rx.indexIn("6");   // returns 0 (matched at position 0) 

E-Mail-Validierung

QRegExp mailREX("\\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\\.[A-Z]{2,4}\\b"); 
mailREX.setCaseSensitivity(Qt::CaseInsensitive); 
mailREX.setPatternSyntax(QRegExp::RegExp); 

So verwenden es?

qDebug() << "Email validation: " myREX.exactMatch("[email protected]"); 

Ergebnis:

"Email validation: true"