Angenommen, es ist sehr einfach, wenn ich etwas finden möchte, das Kleinbuchstaben und Zahlen enthält
produzieren_text | grep -E '[0-9a-z]'
Klammern sind nützlich, um mit einer Reihe von Zeichen übereinzustimmen, aber was ist mit denen, die etwas Besonderes sind?
Wenn ich in Klammern ein beliebiges Zeichen außer einem dieser Zeichen verwenden möchte : eine schließende Klammer ]
, ein Bindestrich (oder Bindestrich) "-", beide Schrägstriche /
und \
, ein Caret ^
, ein Doppelpunkt :
.
Wird es so aussehen (ich weiß, dass das nicht funktioniert)?
[^] - / \ ^:]
quelle
awk
Implementierungen undperl
zum Beispiel benötigt.[^-]]
(Dieser schlägt fehl)?^
ist.]
Dies[^-]]
würde nicht funktionieren, selbst wenn beide^
und]
buchstäblich behandelt würden (genau wie[b-a]
). Wenn Sie von z. B.;
zu schließender Klammer passen möchten, können Sie einen Bereich bis zum Zeichen vor]
(was ein Backslash ist) verwenden und]
als erstes Zeichen in den Klammerausdruck aufnehmen, z[];-\\]
.[[.^.]-[.-.]]
? Ich habe das Gefühl, dass dies funktionieren würde. Nehmen wir an, dass der ASCII-Code von^
vorher ist-
.[^[.].][.-.]/\^:]
Seltsamerweise müssen Sie vielleicht ein paar Charaktere an bestimmten Orten haben. Sie müssen
]
das erste Zeichen in einem Satz und-
das letzte Zeichen in einem Satz sein.Hier ist ein RE , die Ihre Anforderungen erfüllt:
[^]\^/-]
:quelle
[
Zeichen gehört nicht dorthin; das OP will es nicht ausschließen.