Cheatah: RegExp-Problem(e)

Beitrag lesen

Hi,

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

Jetzt mal ne rein stilistische Frage, wozu [^>] und ? in einem ausdruck mischen?

"[^>]" in der ersten, und ".*?" in der zweiten Klammer.

(<[^>]+)\n([^<]*>)

Tja, in der zweiten Klammer ist es Dir eigentlich egal, ob ein "<" auftaucht... hauptsache, es wird das erste ">" gefunden.

(<.+?)\n(.*?>)

Das kann zu unschönen Effekten führen, wenn z.B. das nächste "\n" gesucht wird, obwohl davor ein ">" steht. Dies vermeidest Du mit "[^>]+".

wobei ich letzteres klar favorisieren würde, man braucht ja nicht
auf ewig abwärtskompatibel zu sed zu bleiben.

Das hat mit Abwärtskompatibilität genauso wenig zu tun, wie mit "Stil 1 oder Stil 2". Einzelne Tokens haben einfach bestimmte Bedeutungen, und diese sollte man so gut und sicher wie möglich nutzen.

Cheatah