[C++] Boost Library

#1920180
Lesenswert?

Guten Abend!

Ich beschäftige mich gerade mit dem Einsatz von Regex unter Verwendung 
der Boost Bibliothek. Leider bin ich dabei auf ein kleines Problem 
gestoßen. Im Allgemeinen funktioniert das Ersetzen zwar, jedoch möchte 
ich nun BBCodes mit der Funktion regex_replace() durch Latex-Code 
ersetzen. Versucht habe ich die mit folgendem Code:
1
buffer = boost::regex_replace(
2
  buffer, 
3
  boost::regex("\\[tag\\](.*)\\[\\/tag\\]"), 
4
  string("\\href{$1}{$1}")
5
);

Leider funktioniert dies nicht. Ebenso gelingt mir nicht die Ersetzung 
des BBCodes [tag=http://www.example.de]Linktest[/tag]. Was mache ich 
falsch?

Wpürde mich über Hilfe freuen.

Liebe Grüße,

Andreas
#1920366
Lesenswert?

Da es sich nur um die Ersetzung einiger wenige BBCodes handelt, können 
ruhig mehrere Ausdrücke formuliert werden. Diese werden jedoch alle ein 
ähnliches Schema verwenden. Ich weiß jedoch nicht, wie ein solcher 
AUsdrück für die Form [tag=source]Beschreibung[/tag] beispielsweise für 
ein URL-Tag aussehen müsste.

Liebe Grüße,

Andreas
#1920407
Lesenswert?

Schönes PHP Beispiel. Danke. Allerdings habe ich nun noch ein letztes 
Problem. Ich möchte nun folgende Ersetzung durchführen.
1
buffer = boost::regex_replace(
2
  buffer, 
3
  boost::regex("\\[img\\]([^\\[]*)\\[\\/img\\]"), 
4
  "\\href{$1}{$1}"
5
);

Leider wird kein Backslash vor "href" ausgegeben, obwohl dieser extra 
escaped wurde. Woran kann das liegen?

Liebe Grüße,

Andreas
#1921136
Lesenswert?

Morgen!

Vielen Dank für eure Hilfe. Habe es nun zum Laufen bekommen. Die Aufgabe 
dieses kleinen Programms soll nur sein ein paar BBCodes und 
Sonderzeichen in einem Tutorial durch die entsprechenden Latex-Codes zu 
ersetzen, sodass ich nur einen Header und Footer hinzufügen muss und ein 
kompilierbares Latex-Dokument erhalte. Da es sich nur um ca. 10 
verschiedene Tags handelt, kann ich das ruhig mit Regenechsen machen.

Liebe Grüße,

Andreas
#1922750
Lesenswert?

Guten Abend!

Wie kann man denn so etwas mit Emacs lösen?

Noch eine kleine Frage. Ist es mit der Boost-Library irgendwie möglich, 
den gefundenen Text in eine Datei Namens fund_FUNDNUMMER zu speichern? 
Oder ist es zumindest möglich die Fundnummer zu ermitteln oder immer nur 
die Ersetzung für den ersten Fund vorzunehmen?

Liebe Grüße,

Andreas

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren