Schauen Sie sich Lookkbehind und Lookahead in Regex an.
So etwas wie
(?<!\[\d\d;\d\d?m)yourregexhere
könnte funktionieren (ich bin mir nicht sicher über das Format der colorisierenden Zeichenketten)
Ich habe eine Reihe von Skripten geschrieben, um Übereinstimmungen wie folgt zu färben:
$ echo abcdef | grepg c ab[green]c[/green]def $ echo abcdef | grepr e abcd[red]e[/red]f
Es funktioniert auch, wenn ich es kette:
$ echo abcef | grepr a | grepg b | grepg c | grepp e | grepl f abcdef [each letter have it's own style]
Hovewer, wenn ich dies für Ziffern versuche, ist das Ergebnis falsch:
$ echo 12345 | grepr 1 | grepg 2 | grepb 3 | grepp 4 | grepl 5 [01;[01;3[01;35m4m31m1[01;[01;3[01;35m4m32m2[01;3[01;35m4m3[01;35m45
denn wenn nachfolgende Greps auch innerhalb der von früheren Greps erzeugten Escape-Sequenzen passen.
Wie mache ich es richtig? Ich muss entweder den Grep-Abgleich in terminalen Eskalationssequenzen stoppen oder es mit mehr als einem Muster abgleichen und sie in verschiedenen Farben einfärben.
Schauen Sie sich Lookkbehind und Lookahead in Regex an.
So etwas wie
(?<!\[\d\d;\d\d?m)yourregexhere
könnte funktionieren (ich bin mir nicht sicher über das Format der colorisierenden Zeichenketten)