Am Fre, 31 Aug 2001, schrieb Felix E. Klee:
Christoph Maurer wrote:
Z.B. bei längeren C-Fragmenten ist dies störend, denn da tauchen häufig Klammern, Sterne, Pluszeichen und Punkte auf. Gibt es denn keine Möglichkeit Regular-Expressions in sed oder perl auszustellen oder wenigstens den gesamten Such-String zu quoten?
Baue Dir doch ein kleines Perl-Skript, das z.B. von STDIN liest, alle Sonderzeichen im Sinne einer RegExp maskiert und das ganze wieder ausgibt. Dann ist das Problem gelöst, wenn Du das öfter brauchst, wenn's nur einmal ist, sind die paar Backslashes zu verkraften.
So ein Skript sollte definitiv bei SuSE mitgeliefert werden. Gibt es es vielleicht irgendwo im Netz?
Wo ist das Problem? Wenn es um die reine Funktionalität geht, alle Sonderzeichen in einem übergebenen String zu maskieren, kannst Du das mit einer intelligenten oder mehreren Ersetzungen lösen. Du mußt nur wissen, welche Zeichen Sonderzeichen sind und maskiert werden müssen. Das hängt jedoch davon ab, mit welchem Programm Du Deinen so bearbeiteten RegEx-String weiterverwenden willst, da z.B. emacs ein ( anders interpretiert als vi. (Das Problem dabei ist, daß es zwei Typen von regulären Ausdrücken gibt, Basic Regular Expressions und Extended Regular Expressions. Ein entsprechendes Skript muß deshalb auf die Anwendung zugeschnitten sein (okay, man kann das über Parameter oder so lösen) Schau mal auf den Seiten www.heise.de/iX, da gab es einen sehr informativen und ausführlichen Artikel dazu. Jehr mehr ich jedoch über Deinen Einsatzzweck nachdenke, desto sinnvoller erscheint mir die Verwendung regulärer Ausdrücke, nicht ein bloßes Pattern Matching: Beispiel: (Du schreibst, Du willst C-Fragmente ersetzen) In C ist main(int argc, char* argv[]) und main (int argc, char* argv[]) das gleiche Mit RegEx bekommst Du das gematcht, mit simplen Patterns nicht so richtig... Gruß Christoph -- Christoph Maurer - Paul-Röntgen-Straße 7 - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen