Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

08.02.2009, 02:05

VI regex

Hey,

ich finde meinen Fehler nicht und zwar:

regex 1:

Quellcode

1
:%s/\(<hr.*[^(/>)]\)>/\1\ \/>/g



regex2:

Quellcode

1
:%s/\(<hr.*\)>/\1\ \/>/g



Regex 1 greift bei <hr> nicht warum ? Regex 2 greift bei <hr> und wird zu <hr/>.



mfg
Craw

2

08.02.2009, 04:05

RE: VI regex

Ich bin mit dieser Regex-Syntax zwar nich so vertraut, aber weil ich nich schlafen kann:
Dieser Teil "[^(/>)]" matcht doch ein Zeichen, weil ohne Mengenangabe, oder? Das würde dann nämlich bedeuten, dass zwischen "<hr" und ">" noch ein entsprechendes Zeichen sein müsste, damit es passt.

Wie gesagt, bin ich damit nicht so vertraut (kenne mich eher mit POSIX-Regexen aus), aber ich vermute, dass Du etwas verwechselt hast. Ich vermute nämlich, "[^(/>)]" bedeutet, wie ich es kenne, ein Zeichen, dass nicht "(", "/", ">" und ")" ist und Du wolltest damit irgendwas anderes machen.

Ich hoffe mein unqualifizierter Kommentar hilft Dir ein bischen.
Viel Glück.

3

08.02.2009, 10:22

Jo hast recht

Quellcode

1
:%s/\(<hr.*[^(/>)]*\)>/\1\ \/>/g


* agiert jetzt auf --> [^(/>)]*



Ich vermute nämlich, "[^(/>)]" bedeutet, wie ich es kenne, ein Zeichen, dass nicht "(", "/", ">" und ")" ist und Du wolltest damit irgendwas anderes machen.


glaub nicht weil sonst würde mein andere Teil des Textes nicht ersetzt werden.
() gruppiert das Zeichen />


thX oziris

Thema bewerten