Estou tentando capturar texto por meio de expressão regular e substituir o texto por uma string personalizada.
Meu código atual captura endereços IP com sucesso, mas não sei como substituir o endereço IP por um texto personalizado junto com o restante da mensagem:
$Template privateIP,"%TIMESTAMP% %HOSTNAME% %syslogtag% %msg:R,ERE,0,DFLT:([0-9]{1,3}\.){3}[0-9]{1,3}--end%\n"
Meu primeiro pensamento é de alguma forma mover o regex para fora do modelo (ou seja, com algum RainerScript) e criar um novo campo/variável modded_msg
que seja definido como uma msg
propriedade modificada. E então use %modded_msg%
no $Template.
Eu tentei várias vezes (obrigado, ChatGPT), mas não consigo fazê-lo funcionar.
O exemplo a seguir pode verificar a propriedade msg para um endereço IP e então substituir todas as suas ocorrências na mensagem por alguma string, dependendo do endereço.
re_extract()
procura o regexp na propriedade. Observe o extra()
para que possamos extrair o grupo de captura 1, toda a correspondência. Além disso, o\
é duplicado. O último parâmetro é 0, retornado em caso de falha. A string retornada é salva em uma variável local$.myip
.replace()
substitui todas as ocorrências da string na propriedade e retorna o resultado em outra variável local. O templace usa essa variável local.