Blöde Regex++ frage zu escape charakter

zoidberger

Mitglied
Hallo nochmal!

Nahc meinem gestrigen problem mit dem einbinden von regex++ hab ich heute schon das nächste:

Und zwar gibt es ja den escapecharakter "\"
Bei c++ muss man das mit \\ machen.

Wenn ich dann einen regulären ausdruck formuliere, der zB [XXX] findet, geht das super mit
Code:
  "\\[(.*)\\]"

Wenn ich nun aber "XXX" (mit anführungszeichen) überprüfen möchte und es mit
Code:
  "\\"(.*)\\""
geht das nicht...

bekomme dann bei builden diverse fehlermeldungen (zB term does not evaluate a function taking 0 arguments)


Wie kann ich also explizit ein " überprüfen?

ich hoffe ihr könnt mir helfen :)

greetz!
 
\\ => ein escaptes \
\\" => ein escaptes \ + ein "
\" => ein escaptes "

Was du also suchst ist => \"
 
ja das funktioniert..
aber warum brauch ich dann bei einer "[" zwei escapes ("\\") ?
--> "\\["

//EDIT: Und wie mach ich dann zB ein gleichheitszeichen?!
\= und \\= funktioniert beides nicht..

//EDIT2: Okay, ich schreib das "=" einfach rein ;)
Werden leerzeichen eigentlich einfach übersprungen?
Also es scheint kein unterschied zu machen ob ich nach (.*) = \"... oder nach (.*)=\... such.
Kann ich dann mit escapes ein leerzeichen suchen? :-D

//EDIT3: OKay, das mache ich bei POSIX mit [:space:] und bei perlnotation mit "\s" bzw c++ mit "\\s"
Komisch, immer wenn ich hier ne frage stell, stolper ich dann wenige stunden später selbst über die antwort ;)
Hat ja schon fast was magisches!
 
Zuletzt bearbeitet:
[ ist ein Sonderzeichen.
Um es zu escapen musst du ein \ davor setzen.

Da das wieder um ein Sonderzeichen ist, musst du auch das escapen => \\[

Anders ausgedrückt, was du haben willst ist \[
Korrekt escapted ist die [. Allerdings wird jetzt \ interpretiert, darum zusätzlich escapen.
 
Zurück