Qual é a expressão regular que corresponde a um colchete?

99

Quero um regex que corresponda a um colchete [. Eu não encontrei um ainda. Acho que tentei todas as possibilidades, mas não encontrei a certa. O que é uma regex válida para isso?

Alfre2
fonte

Respostas:

112

Que tal usar a barra invertida \na frente do colchete. Normalmente, os colchetes correspondem a uma classe de caractere.

Peter Stuifzand
fonte
20
Caso você esteja tentando escrever esta regex em C #, você deve usar \\ na frente do colchete.
Shrewdroid
4
Na verdade, não sei onde funciona e por que a resposta recebeu uma classificação tão alta.
Vitali Pom
46

Experimente usar \\[, ou simplesmente \[.

dfa
fonte
16

Se você deseja corresponder a uma expressão começando com [e terminando com ], use \[[^\]]*\].

Matt Roy
fonte
11

Você está fugindo disso \?

/\[/

Este é um recurso útil para começar a usar expressões regulares:

Regular-Expressions.info

Matpie
fonte
6

Em geral, quando você precisa de um caractere que é "especial" em regexes, basta prefixá-lo com um \. Portanto, um literal [seria \[.

Zifre
fonte
5

Se você estiver olhando para encontrar ambas as variações dos colchetes, ao mesmo tempo, você pode usar o seguinte padrão que define uma gama de tanto o [sinal ou o ]sinal:/[\[\]]/

Jaytop
fonte
1
Você pode omitir a primeira barra invertida. [[\]]corresponderá a qualquer um dos colchetes. Em alguns dialetos regex (por exemplo, grep), você pode omitir a barra invertida antes do ]se você colocá-lo imediatamente após a [(porque uma classe de caracteres vazia nunca seria útil): [][]. Mas isso não funciona em Java ou JavaScript.
cayhorstmann
3

funciona com um antislash antes do [?

\[ou \\[?

Pierre
fonte
1

Se você deseja remover a [ou a ], use a expressão: "\\[|\\]".

As duas barras invertidas escapam do colchete e o tubo é um "ou".

Manish Kumar
fonte