4D v16.3

Match regex

Página Inicial

 
4D v16.3
Match regex

Match regex 


 

Match regex ( padrao ; umaCadeia ; posiçao {; pos_encont ; compr_encont}{; *} ) -> Resultado 
Parâmetro Tipo   Descrição
padrao  Texto in Expressão regular
umaCadeia  Texto in Cadeia na qual será realizada a pesquisa
posiçao  Inteiro longo in Posição em umaCadeia onde começa a pesquisa
pos_encont  Array inteiro longo, Variável inteiro longo in Posição da ocorrência
compr_encont  Array inteiro longo, Variável inteiro longo in Comprimento da ocorrência
Operador in Se passado, a função pesquisa apenas na posição indicada
Resultado  Booleano in True=pesquisa encontrou uma ocorrência, se não, False
Match regex ( padrao ; umaCadeia ) -> Resultado 
Parâmetro Tipo   Descrição
padrao  Texto in Expressão regular (igualdade completa)
umaCadeia  Texto in Cadeia na qual será realizada a pesquisa
Resultado  Booleano in True = pesquisa encontrou uma ocorrência, se não, False

O comando Match regex permite provar a conformidade de uma cadeia de caracteres relativo a um conjunto de regras sintetizadas por meio de um metalinguagem chamado “expressão regular” ou “expressão racional.” A abreviação regex é comumente empregada para indicar estes tipos de notações.

Passe em padrao a expressão regular a procurar. Consiste em um conjunto de caracteres utilizado para descrever uma cadeia de caracteres, utilizando caracteres especiais.

Passe em umaCadeia a cadeia na qual buscar a expressão regular.

Passe em início, a posição em umaCadeia onde deve começar a pesquisa.

Se pos_encont. e compr_encont são variáveis, o comando devolve a posição e o comprimento da ocorrência nestas variáveis. Se passa arrays, o comando devolve a posição e o comprimento da ocorrência no elemento zero dos arrays e as posições e comprimentos dos grupos capturados pela expressão regular nos elementos seguintes.

O parâmetro opcional * indica, quando for passado, que a pesquisa deve ser realizada na posição especificada por início e para de pesquisar em caso de falhas.

O comando devolve True se a pesquisa encontrar uma ocorrência.

Para maior informação sobre regex, consulte o seguinte endereço:
http://pt.wikipedia.org/wiki/Express%C3%A3o_regular

Para maior informação sobre a sintaxe das expressões regulares passadas no parâmetro padrao, consulte o seguinte endereço:
http://www.icu-project.org/userguide/regexp.html

Pesquisa de igualdade completa:

 vencont:=Match regex(motivo;meutexto)
 QUERY BY FORMULA([Empregados];Match regex(".*vargas.*";[Empregados]sobrenome))

Pesquisa no texto por posição:

 vencont:=Match regex(motivo;meutexto;inicio;pos_encont;compr_encont)

Exemplo para mostrar todas as etiquetas de $1:

 inicio:=1
 Repeat
    vencont:=Match regex("<.*>";$1;inicio;pos_encont;compr_encont)
    If(vencont)
       ALERT(Substring($1;<a href="#"title="Posição da ocorrência"class="rte4d_prm">pos_encont</a><gen9>;compr</gen9><span class="rte4d_prm">_encont</span><gen9>))
       inicio:=pos_encont+compr_encont
    End if
 Until(Not(vencont))</gen9>

Pesquisa compatível com “grupos capturados” através de parênteses. ( ) são utilizadas para especificar grupos nos regex:
vencont:=Match regex(motivo;meutexto; inicio; pos_encont; compr_encont_array)

 ARRAY LONGINT(pos_encont_array;0)
 ARRAY LONGINT(compr_encont_array;0)
 vencont:=Match regex("(.*)stuff(.*)";$1;1;pos_encont_array;compr_encont_array)
 If(vencont)
    $grupo1:=Substring($1;pos_encont_array{1};compr_encont_array{1})
    $grupo2:=Substring($1;pos_encont_array{2};compr_encont_array{2})
 End if

Pesquisa limitando a comparação do motivo a posição indicada:
Adicionar una estrela ao final de uma das duas sintaxes anteriores.

 vencont:=Match regex("a.b";"---a-b---";1;$pos_encont;$compr_encont )
  `devolve True
 vencont:=Match regex("a.b";"---a-b---";1;$pos_encont;$compr_encont ;*)
  `devolve False
 vencont:=Match regex("a.b";"---a-b---";4;$pos_encont;$compr_encont ;*)
  `devolve True

Nota: as posições e comprimentos retornados são significativos apenas em modo Unicode ou se o texto manipulado for de tipo ASCII 7-bits.

Em caso de erro, o comando gera um erro que pode interceptar através de um método instalado pelo comando ON ERR CALL.

 
PROPRIEDADES 

Produto: 4D
Tema: String
Número 1019

Este comando modifica a variável sistema ErrorThis command can be run in preemptive processesO modo Unicode afeta este comando

 
HISTÓRIA 

Criado por: 4D v11 SQL

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)