Pesquisando e substituindo usando expressões regulares é claramente uma ferramenta poderosa para o usuário do Emacs, que pode executar rotineiramente essas ações. No entanto, como iniciante no Emacs (e / ou programação), expressões regulares precisam ser aprendidas e praticadas.
Posso aprender e treinar expressões regulares de maneira interativa no Emacs, da mesma forma que no tutorial interno do Emacs? Caso contrário, quais são as outras sugestões para utilizar o Emacs para praticar o uso de expressões regulares para pesquisar e substituir?
regular-expressions
learning
Felix Z. Hoffmann
fonte
fonte
Respostas:
Além disso,
regexp-builder
você também pode considerar visual-regexp para fornecer feedback visual sobre a substituição em andamento:fonte
anzu
, o que faz o mesmo e mais.Você pode tentar
M-x regexp-builder RET
qual é um comparador de expressões regulares interativo, isso não é ruimfonte
C-g
não sair como você espera.C-c C-q
é a combinação de teclas padrão para sair do regexp builder quando você terminar de praticar.Eu uso o
regexp-builder
que permite testar regexps interativamente e obter feedback. E, é claro, uma vez que comecei a usar isso, imediatamente me perguntei "Como faço para alimentar esse regexpquery-replace-regexp
?"A resposta que escolhi é a seguinte função definida na página do EmacsWiki ReBuilder .
Então, meu fluxo de trabalho é:
M-x re-builder
M-x reb-query-replace
fonte
Pode ser uma tremenda ajuda ao aprender a usar regexps para ver o que corresponde a quais partes de uma regexp - em particular, grupos regexp. E fazer isso de forma interativa e incremental.
Na linha da resposta do @ immerr, a pesquisa Icicles teve destaque semelhante por um longo tempo.
fonte
Você também pode usar helm-regexp que exibe grupos de regex separadamente.
fonte
Não no emacs, mas http://rubular.com/ é basicamente
regexp-builder
uma folha de dicas. Você pode configurar um exemplo e cuspir um link para esse exemplo. Eu uso isso ao discutir regex com uma equipe.fonte
Como alternativa aos Dave F,
regexp-builder
você também pode criar texto arbitrário para praticar a correspondência de padrões.O recurso mais útil desse comando é que ele destacará correspondências no buffer à medida que o padrão é criado para ajudá-lo a garantir a correspondência adequada do padrão.
Usar
(query-replace-regexp)
( C-M-%) e criar uma expressão regular para executar a substituição desejada ajudará você a praticar.fonte
regexp-builder
ainda não oferecem? O problemaquery-replace-regexp
é que você precisa escrever um regexp inteiro e depois se comprometer com ele para descobrir o que ele corresponde. Se você não gostar do resultado, terá que começar tudo de novo.regexp-builder
mostra correspondências em tempo real, o que facilita o ajuste de sua regexp até que funcione, se você não souber o que está fazendo.query-replace-regexp
vai te usado para usá-lo em Emacs especificamente