Seite 1 von 1

[gelöst] Regulärer Ausdruck geht nicht

Verfasst: 13. Februar 2007 13:35
von BartSimpson
Hallo ich baste an einer Syntaxhervorhebung, dafür muss ja ein regulären Ausdruck angeben, welcher den Bereich beschreibt.
Wie kann man so etwas beschreiben?
"xxx\"xxx\""
Das Problem ist das mehrfache auftreten des Zeichen ".
Normaler weise taucht es ja nur zum Anfang und zum Ende auf.
Aber mit \" kann man es ja auch im Text schreiben. Ich will nun aber den kompletten Texte erwischen.
"\"[^\"]+\"" geht leider nicht, da es vorzeitig abbricht:(

Verfasst: 13. Februar 2007 13:52
von Christian81
Du meinst QRegExp? Dann würde ich mal \\" probieren
-> ein \" wird vom C-Compiler erwischt und landet als irgendwas im String. Odr hast du das schon beachtet?

Verfasst: 13. Februar 2007 14:02
von BartSimpson
Im Moment schreien ich:
QRegExpr("\"[^\"]+\"");
wenn " jeweils am Textanfang und -ende steht steht es prima.
Nur wenn noch eins mittendrinn steht geht es nicht. Was bei der Schreibweise auch erst mal ok ist, da ich ja ^\" geschrieben habe. Nur will ich es halt so haben, das das " Zeichen auch im Text stehen darf, versucht habe ich es mit [\\\",^\"] aber das geht leider nicht:( Da wird denn gar nix mehr gefunden.

Verfasst: 13. Februar 2007 18:16
von BartSimpson
In meinem Fall geht es mit:
"\"[.\\\\\"\\w\\[\\],\\*\\-']+\""

Verfasst: 14. Februar 2007 07:51
von macman
Da hast Du es dir ja einfach gemacht. Was ist mit Ziffern, Leerzeichen und den ganzen Sonderzeichen? Hier die Lösung:
"[^"\\\r\n]*(\\.[^"\\\r\n]*)*"

Und gefunden habe ich das hier http://www.regular-expressions.info/exa ... ammer.html

Verfasst: 14. Februar 2007 08:53
von BartSimpson
Die habe ich in dem Text nicht.:)
Aber trotzdem danke.