Como usar Expressão regular no Protheus | Ti Responde 0104

No vídeo de hoje, vamos demonstrar como utilizar Expressão Regular disponível no TLPPCore.

A dúvida de hoje, nos perguntaram, como podemos utilizar Expressão regular no TL++ (TLPP).

 

Pensando nisso, montamos esse exemplo, onde demonstramos a utilização desse recurso.

 

Segue abaixo o vídeo exemplificando:

 

E abaixo o código fonte desenvolvido:

//Bibliotecas
#Include "tlpp-core.th"

//Declaração da namespace
Namespace exemploRegEx

//Constantes
#Define CRLF Chr(13) + Chr(10) //Carriage Return Line Feed

/*/{Protheus.doc} User Function zVid0104
Exemplo de como usar Expressão Regular via TLPP
@type  Function
@author Atilio
@since 13/03/2024
@see https://tdn.totvs.com/display/tec/RegEx
@obs Exemplo retirado do link https://support.google.com/a/answer/1371417?hl=pt
@example exemploRegEx.u_zVid0104()
/*/

User Function zVid0104()
    Local aArea        := FWGetArea()                       As Array
    Local cExemplo     := "f[a4@][s5\$][t7] +c[a4@][s5\$]h" As Character
    Local oObjetoRegEx := tlpp.regex.Regex():New("")        As Object
    Local cBusca       := ""                                As Character
    Local lResultado   := .F.                               As Logical
    Local cMensagem    := ""                                As Character

    //Faz as buscas, colhe o resultado e incrementa a mensagem
    cBusca     := "f@st c@sh"
    lResultado := oObjetoRegEx:Matches(cExemplo, cBusca)
    cMensagem  += "[" + cValToChar(lResultado) + "] " + cBusca + CRLF

    cBusca     := "f@$t c@$h"
    lResultado := oObjetoRegEx:Matches(cExemplo, cBusca)
    cMensagem  += "[" + cValToChar(lResultado) + "] " + cBusca + CRLF

    cBusca     := "fa$t ca$h"
    lResultado := oObjetoRegEx:Matches(cExemplo, cBusca)
    cMensagem  += "[" + cValToChar(lResultado) + "] " + cBusca + CRLF

    cBusca     := "FAST CASH"
    lResultado := oObjetoRegEx:Matches(cExemplo, cBusca)
    cMensagem  += "[" + cValToChar(lResultado) + "] " + cBusca + CRLF

    cBusca     := "Fast Teste Atilio"
    lResultado := oObjetoRegEx:Matches(cExemplo, cBusca)
    cMensagem  += "[" + cValToChar(lResultado) + "] " + cBusca + CRLF

    //Exibe o resultado
    ShowLog(cMensagem)

    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

 

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação