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.