Was ist der reguläre Ausdruck, der einer eckigen Klammer entspricht?

92

Ich möchte einen regulären Ausdruck, der zu einer eckigen Klammer passt [. Ich habe noch keinen gefunden. Ich glaube, ich habe alle Möglichkeiten ausprobiert, aber nicht die richtige gefunden. Was ist eine gültige Regex dafür?

Alfre2
quelle

Antworten:

105

Wie wäre es mit einem Schrägstrich \vor der eckigen Klammer? Normalerweise entsprechen eckige Klammern einer Zeichenklasse.

Peter Stuifzand
quelle
19
Wenn Sie versuchen, diesen regulären Ausdruck in C # zu schreiben, müssen Sie \\ vor der eckigen Klammer verwenden.
Shrewdroid
4
Eigentlich weiß ich nicht, wo es funktioniert und warum die Antwort einen so hohen Rang erhalten hat.
Vitali Pom
42

Versuchen Sie es mit \\[oder einfach \[.

dfa
quelle
13

Wenn Sie einem Ausdruck entsprechen möchten, der mit beginnt [und mit endet ], verwenden Sie \[[^\]]*\].

Matt Roy
quelle
11

Entkommst du es mit \?

/\[/

Hier ist eine hilfreiche Ressource, um mit regulären Ausdrücken zu beginnen:

Regular-Expressions.info

Matpie
quelle
6

Wenn Sie ein Zeichen benötigen, das in regulären Ausdrücken "speziell" ist, stellen Sie ihm im Allgemeinen einfach ein vor \. Ein wörtliches [wäre also \[.

Zifre
quelle
5

Wenn Sie schauen , die gleichzeitig beide Varianten der eckigen Klammern zu finden, können Sie das folgende Muster verwenden , die eine Reihe von definiert entweder das [Zeichen oder das ]Zeichen:/[\[\]]/

Jaytop
quelle
Sie können den ersten Backslash weglassen. [[\]]passt zu jeder Klammer. In einigen Regex-Dialekten (z. B. grep) können Sie den Backslash vor dem weglassen, ]wenn Sie ihn unmittelbar nach dem platzieren [(da eine leere Zeichenklasse niemals nützlich wäre) : [][]. Aber das funktioniert nicht in Java oder JavaScript.
Cayhorstmann
3

funktioniert es mit einem Antislash vor dem [?

\[oder \\[?

Pierre
quelle
1

Wenn Sie das [oder das entfernen möchten ], verwenden Sie den Ausdruck : "\\[|\\]".

Die beiden Backslashes entweichen der eckigen Klammer und das Rohr ist ein "oder".

Manish Kumar
quelle