Árvore de páginas

Busca por um padrão em uma determinada string e atribui um novo texto antes de sua primeira ocorrência

Sintaxe


insertBefore( < @cStringExp >, < cValue >, [ nCount ], [ lReverse ] )

Parâmetros

NomeTipoDescriçãoObrigatórioReferênciaObservações
cStringExp
String

String que contém o texto para realização de busca

XX
cValueStringString que contém o valor que será inserido antes de sua ocorrênciaX

nCountInteiroParâmetro opcional, numérico que contém o número de ocorrências que serão inseridas


lReverseLógicoParâmetro opcional, define se a busca será feita da esquerda para direita


Retorno

NomeTipoDescriçãoObservações
lRet
Lógico

Indica se a inserção foi executada com sucesso.

A nova string é devolvida em cStringExp. Esse parâmetro deve ser passado por referência.

Observações

Exemplos

Exemplo Construtor
Function u_testInsertBefore()
    Local cText     := "Meu 111.222.333-44"
    Local cValue    := "CPF eh
    Local lOk       := .F.
    Local oRegex

    oRegex  := tlpp.regex.Regex():New("[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}")

  if (valtype(oRegex) == 'O')
        lOk := oRegex:insertBefore(@cText,cValue)

    if (lOk)
            conout(cText) //Meu CPF eh 111.222.333-44
    Else
            conout(oRegex:getError())
    endif
        
        // --------- Testes com nCount
        cText   := "O primeiro 111.222.333-44, o segundo 222.333.111-66 e o terceiro 444.333.111-77"
        lOk     := oRegex:insertBefore(@cText,cValue, 1)

    if (lOk)
            conout (cText) //O primeiro CPF eh 111.222.333-44, o segundo 222.333.111-66 e o terceiro 444.333.111-77
    Else
            conout(oRegex:getError())
    endif

        cText   := "O primeiro 111.222.333-44, o segundo 222.333.111-66 e o terceiro 444.333.111-77"
        lOk     := oRegex:insertBefore(@cText,cValue, 2)

    if (lOk)
            conout (cText) //O primeiro CPF eh 111.222.333-44, o segundo CPF eh 222.333.111-66 e o terceiro 444.333.111-77
    Else
            conout(oRegex:getError())
    endif

        // --------- Testes com lReverse
        cText   := "O primeiro 111.222.333-44, o segundo 222.333.111-66 e o terceiro 444.333.111-77"
        lOk     := oRegex:insertBefore(@cText,cValue, 1, .T.)

    if (lOk)
            conout (cText) //O primeiro 111.222.333-44, o segundo 222.333.111-66 e o terceiro CPF eh 444.333.111-77
    Else
            conout(oRegex:getError())
    endif

        cText   := "O primeiro 111.222.333-44, o segundo 222.333.111-66 e o terceiro 444.333.111-77"
        lOk     := oRegex:insertBefore(@cText,cValue, 2, .T.)

    if (lOk)
            conout (cText) //O primeiro 111.222.333-44, o segundo CPF eh 222.333.111-66 e o terceiro CPF eh 444.333.111-77
    Else
            conout(oRegex:getError())
    endif
  Else
        conout(oRegex:getError())
  endif
Return .T.

Veja também

insertAfter

  • Sem rótulos