Sie sind nicht angemeldet.

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