Heinz: regulärer Ausdruck

Beitrag lesen

Hi!

[^"] <--- wie muss ich das schreiben, damit "nicht &qout;" da drin steht?

Das geht nicht mit negativen Zeichenklassen. Da kannst du nur .* für beliebig viele Zeichen verwenden und ein ? dahinter, damit der Teil nicht »greedy« ist, also nur soviele Zeichen umspannt, bis ein &quot; folgt: &quot;.*?&quot;
Solche Konstruktionen waren bei mir aber immer trotz ungreedy-Flag unzuverlässig... vielleicht kennt jemand eine bessere Möglichkeit.

mein Ausdruck sieht jetzt wie folgt aus
grep -wE "&lt;/?[a-zA-Z]+[a-zA-Z0-9]*.*?&gt;" test.txt
ob ich damit alles abgedeckt habe?

Warum findet
grep -wE "&lt;/?[:alpha:]+[:alnum:]*.*?&gt;" test.txt
folgende Zeile nicht "&lt;b&gt;"?

Heinz