String bis zum ersten Vorkommen eines Zeichens einlesen

Verschiedenes zu Qt
Antworten
nexus
Beiträge: 75
Registriert: 14. Oktober 2006 19:24

String bis zum ersten Vorkommen eines Zeichens einlesen

Beitrag von nexus »

Hallo,

ich würde gerne einen String bis zum ersten Vorkommen eines bestimmten Zeichens einlesen. Jedoch funktioniert der Ausdruck "(.*?)" nicht mit der QRegExp Klasse. Kann mir jemand sagen, wiso das so ist ? oder äquivalente Ausdrücke dazu nennen ?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Von wo einlesen?
.*? ist auch irgendwie nichtssagen - im Grunde heisst es 'mindestens ein Zeichenmuss vorhanden sein'
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
nexus
Beiträge: 75
Registriert: 14. Oktober 2006 19:24

Beitrag von nexus »

Das Wort einlesen war etwas falsch gewählt, ich meinte filtern und sicherlich ist .*? alleinstehend "nichtssagend", aber mal nen Beispiel:

Zeichenkette "aa14b123b45"
Die Zahl zw. "aa" und dem ersten "b" soll ausgelesen werden -> "aa(.*?)b" -> ergebnis "14".

Jedoch Funktioniert dies so nicht mit der QRegExp Klasse.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Deine RegExp ist ja auch falsch...
"^aa([^b]*)b.*$"
aa, dann alles ausser b,egal wie viel, dann b, dann egal.
Aber das geht wohl mit QString::find() besser
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Der reg. Ausdruck funktioniert deswegen nicht, weil du die Hinweise für Perl-Programmierer nicht gelesen hast...

Code: Alles auswählen

QRegExp rx("^aa(.*)b");
rx.setMinimal(true);
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Im übrigen ist bei den QtDemos eine Demosoftware zum testen von Regular-Expressions dabei...
Antworten