Classe tRegEx
A classe tRegEx representa um objeto do tipo RegEx (Regular Expression). A instancia de uma classe permite testar padrões, substituir string, remover ocorrências de uma tag em um texto, etc. Diversas aplicações que realizam operações com string podem ser beneficiar com o uso de expressões regulares. Essa classe foi desenvolvida com base em bibliotecas existentes, como a RE2, da Google .
Hierarquia
- tRegEx
- tRegEx
 
 
Observações
*
Exemplos
User function tRgxNew()
  local regex := NIL
  
  regex := tRegex():new("([Z])\w+")
 
  if ValType(regex) <> "O"
    ConOut ("Erro, objeto nao foi criado")
  else
    ConOut ("Objeto criado com sucesso")
  endif
  regex := tRegex():new("([Z])\w+", .T. ) // Utiliza a biblioteca RE2
 
  if ValType(regex) <> "O"
    ConOut ("Erro, objeto nao foi criado")
  else
    ConOut ("Objeto criado com sucesso")
  endif
returnAbrangência
- 3.0.7
 
Construtores
New
Cria um objeto tRegex com um determinado padrão de texto.
Sintaxe
tRegEx():New( < cPattern >, [ lRE2 ] )Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência - | - | - | - | - cPattern | caractere | Padrão de texto | X | lRE2 | lógico | Indica se será utilizada a biblioteca RE2 como motor das operações | |
Retorno
Nome | Tipo | Descrição - | - | - oObj | objeto | Nova instância da classe tRegEx
Exemplos
User function tRgxNew()
      local regex := NIL
      
      regex := tRegex():new("([Z])\w+")
    
      if ValType(regex) <> "O"
        ConOut ("Erro, objeto nao foi criado")
      else
        ConOut ("Objeto criado com sucesso")
      endif
      regex := tRegex():new("([Z])\w+", .T. ) // Utiliza a biblioteca RE2
    
      if ValType(regex) <> "O"
        ConOut ("Erro, objeto nao foi criado")
      else
        ConOut ("Objeto criado com sucesso")
      endif
    returnMétodos
A classe expõe os seguintes métodos:
Search
Pesquisa o padrão em uma string e retorne o resultado booleano se há alguma substrings correspondente
Sintaxe
Search( < cText > )Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência - | - | - | - | - cText | caractere | Texto no qual o padrao será procurado. | X |
Retorno
Nome | Tipo | Descrição - | - | - lRet | lógico | Se alguma substring do texto correnponde ao padrão, então o retorno é verdadeiro.
Exemplos
user function tRgxSearch()
      local nRet  := -1
      local lRet  := .F.
      local regex := NIL
      local text1 := "texto com letras"
      local text2 := "1231 123123 8575 5676"
      local pattern1 := "([a-z])\w+"
      local pattern2 := "([1-9])\w+"
    
      regex := tRegex():new("([Z])\w+")
    
      if ValType(regex) <> "O"
        Conout('Erro - ValType(regex) <> "O"')
        return
      endif
    
      nRet := regex:SetPattern(pattern1)
      if (nRet != 0)
        ConOut("SetPattern " + pattern1 + " falhou: " + regex:GetErrorMsg())
        return
      endif
    
      lret := regex:Search(text1)
      Conout("Encontrou o padrão: " + cvaltochar(lret)) // .T.
    
      lret := regex:Search(text2)
      Conout("Encontrou o padrão: " + cvaltochar(lret)) // .F.
    
      nRet := regex:SetPattern(pattern2)
      if (nRet != 0)
        ConOut("SetPattern " + pattern2 + " falhou: " + regex:GetErrorMsg())
        return
      endif
    
      lret := regex:Search(text1)
      Conout("Encontrou o padrão: " + cvaltochar(lret)) // .F.
    
      lret := regex:Search(text2)
      Conout("Encontrou o padrão: " + cvaltochar(lret)) // .T.
    
    returnSetPattern
Atribui uma determinada expressao regular ao objeto. As operacoes realizadas utilizam o padrao definido neste método.
Sintaxe
SetPattern( < cPattern > )Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência - | - | - | - | - cPattern | caractere | Expressão regular. | X |
Retorno
Nome | Tipo | Descrição - | - | - lOK | lógico | Indica se a atribuição foi realizada com sucesso. Caso seja falso, verificar o erro através da GetError.
Exemplos
user function tRgxSetPattern()
      local nRet  := -1
      local lRet  := .F.
      local regex := NIL
      local text1 := "texto com letras"
      local text2 := "1231 123123 8575 5676"
      local pattern1 := "([a-z])\w+"
      local pattern2 := "([1-9])\w+"
    
      regex := tRegex():new("([Z])\w+")
    
      if ValType(regex) <> "O"
        Conout('Erro - ValType(regex) <> "O"')
        return
      endif
    
      nRet := regex:SetPattern(pattern1)
      if (nRet != 0)
        ConOut("SetPattern " + pattern1 + " falhou: " + regex:GetErrorMsg())
        return
      endif
    
      lret := regex:Search(text1)
      Conout("Encontrou o padrão: " + cvaltochar(lret)) // .T.
    
      lret := regex:Search(text2)
      Conout("Encontrou o padrão: " + cvaltochar(lret)) // .F.
    
      nRet := regex:SetPattern(pattern2)
      if (nRet != 0)
        ConOut("SetPattern " + pattern2 + " falhou: " + regex:GetErrorMsg())
        return
      endif
    
      lret := regex:Search(text1)
      Conout("Encontrou o padrão: " + cvaltochar(lret)) // .F.
    
      lret := regex:Search(text2)
      Conout("Encontrou o padrão: " + cvaltochar(lret)) // .T.
    
    returnSetICase
Determina se o padrão da expressao regular deve ou nao ser case insensitive. O padrão é true.
Sintaxe
SetICase( < lSetICase > )Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência - | - | - | - | - lSetICase | lógico | Indica se a busca considera case insensitive. | X |
Retorno
Nome | Tipo | Descrição - | - | - nRet | numérico | Indica se o case foi alterado com sucesso. Caso o retorno seja diferente de zero, deu erro.
Exemplos
user function tRgxSetICase()
      local nRet  := -1
      local lRet  := .F.
      local regex := NIL
      local text1 := "texto com letras"
      local text2 := "ADASDW GREGEGS ATASFC AWEWEQ"
      local pattern1 := "([a-z])\w+"
      regex := tRegex():new("([Z])\w+")
      if ValType(regex) <> "O"
        Conout('Erro - ValType(regex) <> "O"')
        return
      endif
      nRet := regex:SetPattern(pattern1)
      nRet := regex:SetICase(.T.)
      lret := regex:Search(text1)
      Conout('Encontrou o padrão: ' + cvaltochar(lRet)) // .T.
      lret := regex:Search(text2)
      Conout('Encontrou o padrão: ' + cvaltochar(lRet)) // .T.
      nret := regex:SetICase(.F.)
      lret := regex:Search(text1)
      Conout('Encontrou o padrão: ' + cvaltochar(lRet)) // .T.
      lret := regex:Search(text2)
      Conout('Encontrou o padrão: ' + cvaltochar(lRet)) // .F.
    returnGetError
Sintaxe
GetError( < cFila >, < bAck >, < bWaitingEvent > )Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência - | - | - | - | - cFila | caractere | Indica o nome da fila onde ser resgatada . | X | bAck | lógico | Indica se o consumo ir ser autoack. | X | bWaitingEvent | lógico | Ignora o timeout e se fica aguardando por uma nova mensagem na fila (no maximo por 30 segundos). | X |
Exemplos
user function tRgxGetError()
      local ret      := -1
      local regex    := NIL
      local pattern1 := .F.
      local err      := NIL
      regex := tRegex():new("([Z])\w+")
      ret := regex:SetPattern(pattern1)
      err := regex:GetError()
      Conout("Codigo de erro:" + cValtoChar(err))
    returnGetErrorMsg
Retorna a descrição do último erro ocorrido.
Sintaxe
GetErrorMsg()Retorno
Nome | Tipo | Descrição - | - | - cError | caractere | Descreve o erro que ocorreu na ultima operação realizada.
Exemplos
user function tRgxGetErrorMsg()
      local ret   := -1
      local regex := NIL
      local pattern1 := .F.
      local err := ""
      regex := tRegex():new("([Z])\w+")
      ret := regex:SetPattern(pattern1)
      err := regex:GetErrorMsg()
      Conout("Mensagem de erro:" + err)
    returnPropriedades
A classe expõe as seguintes propriedades:
Pattern
Conteudo da mensagem recebida aps uma solicitao ao server AMQP via BasicConsume().
Tipo | Valor Padrão | Somente Leitura - | - | - caractere | "" | N
iCase
Indica se deve ser considerado caixa alta. O padrão é falso.
Tipo | Valor Padrão | Somente Leitura - | - | - lógico | N/A | N
Multiline
Indica se a correspondência do texto deve ser multilinha.
Tipo | Valor Padrão | Somente Leitura - | - | - lógico | N/A | N
Literal
Indica que a string deve ser interpretada como literal, não como expressão regular. O padrão é falso.
Tipo | Valor Padrão | Somente Leitura - | - | - lógico | N/A | N
Latin1
Por padrão, os textos de entrada são interpretados como UTF-8. A opção Latin1 faz com que sejam interpretados como Latin-1.
Tipo | Valor Padrão | Somente Leitura - | - | - lógico | N/A | N