Eu não acho que isso possa ser feito com um único regex, já que não há como olhar para dentro de um grupo capturado. Mas o Perl pode fazer isso em uma linha, pois permite executar uma transliteração dentro de uma substituição:
$ echo 123 456 789 | perl -pe 's/\b[0-9]/ $& =~ tr,1-90,qwertyuiop,r /ge'
q23 r56 u89
(O s/pattern/replacement/
é um operador% de sed
estilo localizar + substituir, \b
corresponde a uma borda de palavra. O e
após a% final/
torna a substituição uma expressão e o snippet usa tr///
para transliterar $&
, a variável que contém o texto correspondente. Caracteres arbitrários podem ser usados como delimitadores para tr
, portanto, a vírgula é usada para não entrar em conflito com o operador externo.)
Claro que isso não ajuda muito se você quiser fazer isso dentro do Geany.