Forum: PC-Programmierung QT mit QRegExp Stringteile ersetzen durch Teil des Suchmusters


von Vlad T. (vlad_tepesch)


Lesenswert?

Hi,
Ich stell mich grad ein wenig blöd bei der Suche an, vielleicht kann mir 
jemand fix helfen.

Ich suche das äquivalent in QT zu folgendem Perl-RegEx:

$text =~ s/\[(.*?)\]/\/\1/g;


Das Problem ist, dass in dem zu ersetzenden Pattern ein Teil der 
Fundstelle benötigt wird.

mit
1
QString text;
2
QRegExp rex("\\[(.*?)\\]");
3
text.replace(rex, "/\1");
gehts natürlich nicht.

muss doch einfacher gehen, als das das ganze komplett von Hand zu 
machen.


Danke und Gruß,
Vlad

von Rolf Magnus (Gast)


Lesenswert?

1
text.replace(rex, rex.cap(1));

von Rolf Magnus (Gast)


Lesenswert?

Ach so, das da:

Vlad Tepesch schrieb:
> mit
> QString text;
> QRegExp rex("\\[(.*?)\\]");
> text.replace(rex, "/\1");
> gehts natürlich nicht.

liegt vermutlich daran, daß du das \1 nicht richtig escaped hast. Es 
müßte natürlich \\1 heißen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.