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?

Antworten:


105

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


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 \[.


13

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



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 \[.


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:/[\[\]]/


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 \\[?


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".

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.