logo

Função PHP preg_match()

A função preg_match() é uma função integrada do PHP que realiza uma correspondência de expressões regulares. Esta função pesquisa o padrão na string e retorna verdadeiro se o padrão existir, caso contrário, retorna falso.

Geralmente, a pesquisa começa no início do parâmetro $subject string. O parâmetro opcional $offset é usado para iniciar a pesquisa a partir da posição especificada.

Sintaxe

 int preg_match (string $pattern, string $subject, array $matches, int $flags, int $offset) 

Nota: $offset é um parâmetro opcional que especifica a posição de onde iniciar a pesquisa.

Parâmetros

Esta função aceita cinco parâmetros, que são descritos abaixo:

padrão

É um parâmetro do tipo string. Este parâmetro contém o padrão de pesquisa como uma string.

assunto

Este parâmetro contém a string de entrada na qual procuramos o padrão.

partidas

Se o parâmetro matches for fornecido, ele conterá os resultados da pesquisa.

correspondências[0] - Ele conterá o texto que corresponde ao padrão completo.

partidas[1] - Ele conterá o texto que corresponde ao primeiro subpadrão entre parênteses capturado e assim por diante.

bandeiras

mapa de árvore

Os sinalizadores podem ter os seguintes sinalizadores fornecidos abaixo:

    PREG_OFFSET_CAPTURE:Se este sinalizador for passado em preg_match(), para cada correspondência que ocorrer, o deslocamento da string anexa também retornará.PREG_UNMATCHED_AS_NULL:Se este sinalizador for passado em preg_match(), o subpadrão sem correspondência será relatado como NULL, caso contrário, será relatado como uma string vazia.

desvio

Por padrão, a pesquisa começa no início do parâmetro $subject. O parâmetro offset é usado para especificar o local onde a pesquisa será iniciada. É um parâmetro opcional.

Tipo de retorno

A função preg_match() retorna verdadeiro se o padrão corresponder, caso contrário, retorna falso.

Nota: Se você deseja apenas verificar se uma string está contida em outra string, não use a função preg_match(). Use a função strpos() pois será mais rápida.

Exemplos

 <?php //initialize a variable of string type $site = 'javatpoint'; preg_match('/(java)(t)(point)/', $site, $matches, PREG_OFFSET_CAPTURE); //display the matches result print_r($matches); ?> 

Saída:

 Array ( [0] =&gt; Array ( [0] =&gt; javatpoint [1] =&gt; 0 ) [1] =&gt; Array ( [0] =&gt; java [1] =&gt; 0 ) [2] =&gt; Array ( [0] =&gt; t [1] =&gt; 4 ) [3] =&gt; Array ( [0] =&gt; point [1] =&gt; 5 ) ) 

Podemos ver a saída acima conforme fornecida abaixo para entendê-la melhor.

 Array ( [0] =&gt; Array ( [0] =&gt; javatpoint [1] =&gt; 0 ) [1] =&gt; Array ( [0] =&gt; java [1] =&gt; 0 ) [2] =&gt; Array ( [0] =&gt; t [1] =&gt; 4 ) [3] =&gt; Array ( [0] =&gt; point [1] =&gt; 5 ) ) 

Exemplos: pesquisa sem distinção entre maiúsculas e minúsculas

 <?php //initialize a variable of string type $website = 'JTP is a best online platform to learn.'; //case insensitive search for word jtp //The 'i' after pattern delimiter indicates case-insensitive search $res = preg_match('/jtp/i', $website, $matches); if ($res) { echo 'Pattern matched in string.</br>&apos;; print_r($matches); } else { echo &apos;Pattern not matched in string.&apos;; } ?&gt; 

Saída:

 Pattern matched in string. Array ( [0] =&gt; JTP ) 

Exemplos: usando limite de palavra ()

nomenclatura de convenções java
 <?php /* The  indicates the word boundary in the pattern. So, it matches only the distinct word like 'web', and words like 'coreweb' or ' webinar' do not match partially.*/ if (preg_match('/web/i', 'PHP is a web scripting language.')) { echo 'A match was found. </br>&apos;; } else { echo &apos;A match was not found. <br>&apos;; } if (preg_match(&apos;/web/i&apos;, &apos;PHP is a website scripting language.&apos;)) { echo &apos;A match was found.&apos;; } else { echo &apos;A match was not found.&apos;; } ?&gt; 

Saída:

 A match was found. A match was not found. 

Exemplos: obtenha o nome de domínio do URL

 

Saída:

 Domain name is: javatpoint.com 

Sintaxe Regex (expressão regular)

[abc] Corresponde a um único caractere - a, b ou c
[^abc] Corresponde a qualquer caractere único, exceto a, b ou c
[a-z] Corresponde a qualquer caractere único dentro do intervalo a-z
[a-zA-Z] Qualquer caractere único dentro do intervalo a-z ou A-Z
^ Início da linha
$ Fim da linha
A Início da sequência
Com Fim da corda
. Qualquer caractere único
s Qualquer caractere de espaço em branco
S Qualquer caractere que não seja espaço em branco
d Qualquer dígito
D Qualquer não-dígito
Em Qualquer caractere de palavra (letra, número, sublinhado)
EM Qualquer caractere que não seja uma palavra
 Verificador de limites de palavras
/?/ Inicia e termina a expressão regular
(?) Capture tudo entre parênteses ()
(uma|b) a ou B
a? Zero ou um de um
a* Zero ou mais de um
um+ Um ou mais de um
um{3} Exatamente 3 de um
uma{3,} 3 ou mais de um
um{3,6} Entre 3 e 6 de uma
eu Verificação sem distinção entre maiúsculas e minúsculas
eu Faça com que os pontos correspondam às novas linhas
x Ignorar espaços em branco em regex

Explicando o padrão '[^[a-zA-Z0-9._-] +@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/]'

    ''/?/''Mostra o início e o fim da expressão regular.'[^[a-zA-Z0-9._-]'Corresponde a qualquer letra maiúscula ou minúscula, número entre 0 e 9, ponto, sublinhado ou travessão.'+@[a-zA-Z0-9-]'Corresponde ao símbolo @ seguido de letras maiúsculas ou minúsculas, números entre 0 e 9 ou travessões.'+.[a-zA-Z.]{2,5}$/'O ponto é escapado usando uma barra invertida e, em seguida, corresponde a quaisquer letras maiúsculas ou minúsculas com comprimento entre 2 e 5 no final da string.