A expressão regular é um padrão específico que pode ser usado para corresponder, pesquisar e substituir qualquer string específica em dados de texto. É um recurso poderoso de qualquer linguagem de programação. É usado principalmente para realizar diferentes tipos de validações de formulário, como validar e-mail, verificar o formato do telefone, validar os campos de nome de usuário e senha do formulário de login, etc. Qualquer conteúdo específico do texto pode ser pesquisado e substituído usando um padrão de expressão regular. Também é chamado de regex ou RegExp. Diferentes tipos de símbolos são usados para definir o padrão regex.
Existem muitas funções integradas no PHP para a expressão regular. função preg_match () é uma delas. Esta função é usada para combinar um padrão particular em dados de string. Como a função preg_match () pode ser usada no PHP para realizar várias tarefas é explicado neste tutorial.
Sintaxe:
Int ou falso preg_match (string $ pattern, string $ subject [, array & $ Matches = null [, int $ flags = 0 [, int $ offset = 0]]])Esta função pode receber cinco argumentos. O primeiro argumento, $ padrão, é obrigatório, o que define o padrão para correspondência. O segundo argumento, $ assunto, é obrigatório e contém os dados da string em que o padrão será aplicado. O terceiro argumento, $ partidas, é opcional e retorna uma matriz com base na correspondência. O quarto argumento, $ flags, é opcional, que contém diferentes tipos de valores de sinalização com base na correspondência. O quinto argumento, $ offset, é opcional e pode ser usado para definir a posição inicial da pesquisa.
Exemplo 1: corresponder ao padrão de uma maneira que diferencia maiúsculas de minúsculas e não diferencia maiúsculas de minúsculas
O exemplo a seguir mostra o uso da função preg_match () para combinar a string de uma maneira que diferencia maiúsculas de minúsculas e não diferencia maiúsculas de minúsculas. Crie um arquivo PHP com o seguinte script.
Aqui, três padrões são usados para aplicar em três funções preg_match (). O primeiro padrão, '/Como/', é usado para combinar a string diferenciando maiúsculas de minúsculas. O segundo padrão, '/Como/', é usado para combinar a string diferenciando maiúsculas de minúsculas. O terceiro padrão, 'Como eu', é usado para combinar a string sem fazer distinção entre maiúsculas e minúsculas. search_pattern () função é definida no script para usar a função preg_match () para correspondência e imprime a mensagem com base no valor retornado desta função.
// Defina o texto$ text = "Eu gosto de PHP. Eu também gosto de JavaScript.";
// Defina três tipos de padrão
$ pattern1 = '/ Like /';
$ pattern2 = '/ like /';
$ pattern3 = '/ Like / i';
// Definir função para pesquisar o padrão no texto
função search_pattern ($ padrão, $ string)
if (preg_match ($ pattern, $ string))
echo "Resultado da pesquisa: A correspondência foi encontrada para o padrão - $ padrão
";
senão
echo "Resultado da pesquisa: Correspondência não encontrada para o padrão - $ padrão
";
// Imprime o texto original
echo "O texto original é: $ text
";
// Chame a função três vezes para três padrões
search_pattern ($ pattern1, $ text);
search_pattern ($ pattern2, $ text);
search_pattern ($ pattern3, $ text);
?>
Resultado:
A seguinte saída aparecerá após a execução do script do servidor. A primeira linha mostra o texto onde os padrões foram pesquisados. A segunda linha mostra a saída do primeiro padrão. A terceira linha mostra a saída do segundo padrão. A quarta linha mostra a saída do terceiro padrão.
Exemplo 2: validar o URL
O exemplo a seguir mostra a maneira de validar o endereço URL usando a função preg_match (). Crie um arquivo PHP com o seguinte script.
Um valor de URL é atribuído na variável $ url para teste. '@ ^ (?: https: //)?([^ /] +) @ i 'string é usado como um padrão na função preg_match () para verificar se o endereço URL é válido ou não. Se for válido, o nome do host e o nome do domínio serão impressos, caso contrário, a mensagem de erro será impressa.
// Defina o URL$ url = "https: // www.linuxhint.com ";
// Defina o padrão para validar o URL
$ pattern = '@ ^ (?: https: //)?([^ /] +) @ i ';
// Verifique se o URL é válido ou não
if (preg_match ($ pattern, $ url, $ matches1))
// Imprima a mensagem de sucesso
echo "O URL é válido.
";
// Imprime a matriz que contém os valores correspondentes
echo "Os valores da matriz são:";
print_r ($ partidas1);
// Recupere e imprima o valor do host
$ host = $ partidas1 [1];
echo "
O nome do host é: $ host ";
// Pesquise o nome de domínio a partir do valor do host
preg_match ('/ [^.] + \.[^.] + $ / ', $ host, $ jogos2);
echo "
O nome do domínio é: $ Match2 [0] ";
senão
// Imprime a mensagem de erro
echo "URL inválido.";
?>
Resultado:
A seguinte saída aparecerá após a execução do script do servidor. O URL fornecido no script é válido. Portanto, a saída mostra os valores de $ Match, o nome do host do URL e o nome de domínio do URL.
Exemplo 3: padrão de pesquisa com valores de sinalização e deslocamento
O exemplo a seguir mostra os usos dos valores de sinalização e deslocamento na função preg_match (). Crie um arquivo PHP com o seguinte script.
Três padrões são usados no script para três tipos de correspondência. Na primeira função preg_match (), '/ (bangla) (desh) /' é usado como o padrão e o valor do sinalizador, PREG_OFFSET_CAPTURE é usado. Os valores do $ fósforos variável será impressa com base na saída da primeira função preg_match (). Na segunda função preg_match (), '/ (bangla) (feliz) * (desh) / i', é usado como o padrão e o valor do sinalizador, PREG_UNMATCHED_AS_NULL é usado. Se alguma parte do padrão não corresponder, um valor NULL será armazenado na matriz. Os valores do $ partidas variável será impressa com base na saída da segunda função preg_match (). Na terceira função preg_match (), '/ glad /' é usado como o padrão, o valor do sinalizador, PREG_OFFSET_CAPTURE é usado e 3 é usado como o valor de deslocamento. Os valores do $ partidas variável será impressa com base na saída da terceira função preg_match ().
// Defina o valor do texto$ text = "Bangladesh";
// Defina três tipos de padrões
$ pattern1 = '/ (bangla) (desh) / i';
$ pattern2 = '/ (bangla) (feliz) * (desh) / i';
$ pattern3 = '/ happy /';
// Usando sinalizador PREG_OFFSET_CAPTURE
preg_match ($ pattern1, $ text, $ Matches, PREG_OFFSET_CAPTURE);
echo "
";
print_r ($ jogos);
echo "
";
// Usando sinalizador PREG_UNMATCHED_AS_NULL
preg_match ($ pattern2, $ text, $ Matches, PREG_UNMATCHED_AS_NULL);
echo "
";
print_r ($ jogos);
echo "
";
// Usando o sinalizador PREG_OFFSET_CAPTURE e o valor de deslocamento
preg_match ($ pattern3, $ text, $ Matches, PREG_OFFSET_CAPTURE, 3);
echo "
";";
print_r ($ jogos);
echo "
?>
Resultado:
A seguinte saída aparecerá após a execução do script do servidor.
Conclusão
Os usos da função preg_match () foram explicados neste tutorial usando vários exemplos. Os usos de diferentes argumentos desta função também foram mostrados aqui. Os leitores serão capazes de usar esta função corretamente em seu script após ler este tutorial.