Eu fiz uma pergunta, insira uma string em uma lista de variáveis no arquivo de texto [use sed]
No qual @RomanPerekhrest me mostrou uma sintaxe de regex diferente.
\(=([^)]*\))
pode capturar [^)]*
como grupo 1 . Isso é confuso para mim.
Você pode conferir o resultado em https://regex101.com/r/DRChkE/2
https://regex101.com/r/LItVNg/1
Este \(([^\)]*)\)
é o correto em minha mente, mas está quebrado em sed.
Então, eu me pergunto como fazer o sed usar o padrão de sintaxe regex como python ou javascript (padrão comum em muitos idiomas).
Você está procurando por expressões regulares de estilo Perl, também conhecidas como PCRE, mas essa não é uma sintaxe compatível com POSIX e não é suportada por implementações típicas das ferramentas de linha de comando padrão, como
sed
. O que é suportado é a sintaxe conhecida como Expressão Regular Básica (BRE) e Expressão Regular Estendida (ERE). Nosed
primeiro é o padrão e no segundo é ativado com-E
(no GNU o sed-r
também funciona).Ocasionalmente, você verá versões de ferramentas padrão com algum suporte para PCRE (por exemplo, GNU's
grep
tem a-P
bandeira), mas esta é a exceção, não a norma.Consulte a seção Padrões da página regex da Wikipédia para obter detalhes.