Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 2 Próxima »

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 https://github.com/google/re2/wiki/Syntax .

Hierarquia
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
return
Abrangência
  1. 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
    return

Métodos

A classe expõe os seguintes métodos:

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.
    
    return

SetPattern

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.
    
    return

SetICase

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.
    return

GetError

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))
    return

GetErrorMsg

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)
    return

Propriedades

A classe expõe as seguintes propriedades:

Pattern

Conteudo da mensagem recebida aps uma solicitao 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

  • Sem rótulos