Para corresponder uma substring entre o primeiro [
e o último ]
, você pode usar
\[.*\] # Including open/close brackets
\[(.*)\] # Excluding open/close brackets (using a capturing group)
(?<=\[).*(?=\]) # Excluding open/close brackets (using lookarounds)
Veja uma demonstração de regex e uma demonstração de regex # 2 .
Use as seguintes expressões para corresponder cadeias entre os colchetes mais próximos :
Incluindo os suportes:
\[[^][]*]
- PCRE, Python re
/ regex
. NET, Golang, POSIX (grep, sed, bash)
\[[^\][]*]
- ECMAScript (JavaScript, C ++ std::regex
, VBA RegExp
)
\[[^\]\[]*]
- Regex Java
\[[^\]\[]*\]
- Onigmo (Ruby, requer escape de colchetes em todos os lugares)
Excluindo os colchetes:
(?<=\[)[^][]*(?=])
- PCRE, Python re
/ regex
, .NET (C #, etc.), ICU (R stringr
), Software JGSoft
\[([^][]*)]
- Bash , Golang - capture o conteúdo entre colchetes com um par de parênteses sem escape, também veja abaixo
\[([^\][]*)]
- JavaScript , C ++std::regex
, VBARegExp
(?<=\[)[^\]\[]*(?=])
- Regex Java
(?<=\[)[^\]\[]*(?=\])
- Onigmo (Ruby, requer escape de colchetes em todos os lugares)
NOTA : *
corresponde a 0 ou mais caracteres, use +
para corresponder a 1 ou mais para evitar correspondências de seqüência de caracteres vazias na lista / matriz resultante.
Sempre que o suporte de ambos os olhares está disponível, as soluções acima se baseiam neles para excluir o suporte de abertura / fechamento à esquerda / à direita. Caso contrário, confie na captura de grupos (foram fornecidos links para as soluções mais comuns em alguns idiomas).
Se você precisar corresponder parênteses aninhados , poderá ver as soluções na expressão Regular para corresponder ao segmento de parênteses balanceados e substituir os colchetes pelos quadrados para obter a funcionalidade necessária. Você deve usar grupos de captura para acessar o conteúdo com o colchete de abrir / fechar excluído:
[^]]
é mais rápido que o não ganancioso (?
), e também funciona com tipos de expressões regulares que não oferecem suporte a não gananciosos. No entanto, não ganancioso parece melhor.