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