regular expressions und whole word
-
Für eine Textprozessorapplikation habe ich mir GRETA zur Unterstützung für regular expression - replacements geholt.
Wenn ich in VC mit der Option 'whole word' manuell ersetze, wie bringe ich das in der regex-Anweisung unter? GRETA kann mit einem Flag case-sensivity unterdrücken, besitzt aber keine entsprechende Option für 'whole word'.
Wenn ich 'whole word' verwende, sollte ich weder "spar" noch "parameter" finden können, sowie ich nach "par" suche, sondern eben nur "par". Ich weiß jetzt nicht, was alles als Wortgrenze zählt, ich denke aber mal, dass zumindest die identifier characters _0-9a-zA-z zum Wort zählen. Mit dem Suchstring <par> sollte ich komplette Wörter finden können, was aber leider nicht funktioniert.EDIT:
in GRETA kann ich die Sache eigentlich sehr einfach und sehr schnell lösen:subst_results results;
rpattern pat("par","rumms",GLOBAL);
int hits = pat.substitute(str, results);und dann liegt der Eingabestring str modifiziert vor.
Wenn es eine andere ebenso einfache Möglichkeit mit boost oder ATL gibt, hätte ich nix dagegen, solange mein Problem gelöst wird. Für ein Minibeispiel bei Einsatz einer anderen Library wäre ich dann sehr dankbar.
-
Eieiei - wenn ich schon mal was frag...
Wer trotzdem GRETA mal versuchen möchte:
http://research.microsoft.com/en-us/downloads/bd99f343-4ff4-4041-8293-34c054efe749/default.aspxHier ist noch ein Patch damit's ab VC2008 überhaupt übersetzt:
datei restack.h#if 0 // PATCH byte_t m_buf[ aligned_sizeof<stack_node::header>::no_rtti + StaticBlockSizeT ]; #else byte_t m_buf[ aligned_sizeof<typename stack_node::header>::no_rtti + StaticBlockSizeT ]; #endifklein und schnell. Wenn da nur dieses Problem nicht wäre...