Resumo : neste tutorial, você aprenderá como usar a preg_replace()
função PHP para pesquisar e substituir usando expressões regulares.
Introdução à função preg_replace() do PHP
A preg_replace()
função procura correspondências e as substitui por um padrão.
O seguinte mostra como usar a preg_replace()
função com uma única string:
preg_replace(
string $pattern,
string $replacement,
string $subject,
int $limit = -1,
int &$count = null
): string
Linguagem de código: PHP ( php )
A preg_replace()
função possui os seguintes parâmetros:
$pattern
é uma expressão regular para corresponder.$replacement
é uma string a ser substituída. Pode conter as referências anteriores.$subject
é uma string para pesquisar e substituir.$limit
é a substituição máxima possível para o padrão. Por padrão, é -1, que é ilimitado.$count
armazena o número de substituições.
Se $subject corresponder a $pattern, a preg_replace()
função substituirá a correspondência por $replacement e a retornará.
Exemplos de funções PHP preg_replace()
Vejamos alguns exemplos de uso da preg_replace()
função.
1) Usando a função PHP preg_replace() para alterar o formato da data
O exemplo a seguir usa a preg_replace()
função para alterar a sequência de data de dd-mm-yyyy
para mm-dd-yyyy
formato:
<?php
$pattern = '/(\d{2})-(\d{2})-(\d{4})/';
$replacement = '\2-\1-\3';
$str = '25-12-2021';
echo preg_replace($pattern, $replacement, $str);
Linguagem de código: PHP ( php )
Saída:
12-25-2021
Linguagem de código: PHP ( php )
Como funciona.
A seguinte expressão regular corresponde à data no dd-mm-yyyy
formato:
/(\d{2})-(\d{2})-(\d{4})/
Linguagem de código: PHP ( php )
Consiste em três grupos de captura para dia (\d{2})
, mês (\d{2})
e ano (\d{4})
.
A sequência de substituição contém três referências anteriores \2
para o segundo grupo de captura que é o mês, \1
para o primeiro grupo de captura que é o dia e \3
para o terceiro grupo de captura que é o ano.
Portanto, o preg_replace()
altera o formato da data de dd-mm-yyyy
para mm-dd-yyyy
.
2) Usando a função PHP preg_replace() para remover o excesso de espaços em branco
O exemplo a seguir usa a preg_replace()
função para remover o excesso de espaço em branco de uma string:
<?php
$str = 'PHP is awesome';
echo preg_replace('/\s\s+/', ' ', $str);
Linguagem de código: PHP ( php )
Saída:
PHP is awesome
Linguagem de código: PHP ( php )
O padrão /\s\s+/
corresponde a um ou mais espaços.
Função PHP preg_replace() com arrays
A preg_replace()
função também aceita $pattern
, $replacement
e $subject
como arrays:
preg_replace(
string|array $pattern,
string|array $replacement,
string|array $subject,
int $limit = -1,
int &$count = null
): string|array|null
Linguagem de código: PHP ( php )
Se ambos $pattern
e $replacement
forem arrays e $subject
forem uma string, a preg_replace()
função substituirá cada padrão no $pattern
array pela substituição no $replacement
array.
Se o $replacement
array tiver menos elementos que o $pattern
array, a preg_replace()
função substituirá padrões extras por uma string vazia.
Se $subject
for um array, a preg_replace()
função pesquisa e substitui cada string no array e retorna o resultado como um array.
Resumo
- Use a função PHP
preg_replace()
para pesquisar e substituir strings usando expressões regulares.