Cheatah: RegExp-Problem(e)

Beitrag lesen

Hi,

$file =~ s/(<.*[^>])\n(.*>)/$1 $2/igs;

das /s bewirkt, daß auch "." auf "\n" matcht - und genau das willst Du nicht. Außerdem ist ".*[^>]" sinnarm - Du suchst damit beliebig viele Zeichen (also vom Anfang des Strings bis fast am Ende), gefolgt von einem Zeichen, welches nicht ">" sein darf.

Eigentlich suchst Du "(<[^>]+)". In der zweiten Klammer solltest Du vom "?" Gebrauch machen, um bei .* die Greediness auszuschalten.

Wie negiert man denn sonst einen regulären Ausdruck?

Bei der Prüfung, ob ein String auf eine RegExp matcht (also "ja" oder "nein"), mit "!~". Darüber hinaus macht der Begriff "Negierung" keinen Sinn, weil es um Aktionen, Anzahlen oder reelle Werte geht.

Cheatah