logo

Função MySQL REGEXP_REPLACE()

A função MySQL REGEXP_REPLACE() é usada para correspondência de padrões. Esta função pesquisa uma string em busca de um padrão de expressão regular e substitui cada ocorrência do padrão com a string especificada que corresponde ao padrão de expressão regular fornecido. Se a correspondência for encontrada, ele retornará a string inteira junto com as substituições. Se nenhuma correspondência for encontrada, a string retornada permanecerá inalterada. Se a expressão, os padrões e a string de substituição forem NULL, a função retornará NULL.

REGEXP_REPLACE(), SUBSTITUIR(), e a TRADUÇÃO() funcionar em MySQL are funciona da mesma forma, exceto que TRANSLATE nos permite fazer múltiplas substituições de um único caractere e a função REPLACE substitui uma string inteira por outra string, enquanto REGEXP_REPLACE pesquisa uma string por um padrão de expressão regular.

Sintaxe

A seguir está uma sintaxe básica para usar esta função no MySQL:

gráfico de algarismos romanos 1 100
 REGEXP_REPLACE (expression, pattern, replace_string[, pos[, occurrence[, match_type]]]) 

Explicação do parâmetro

A explicação dos parâmetros da função REGEXP_REPLACE() é:

expressão: É uma string de entrada na qual realizaremos pesquisas através de parâmetros e funções de expressões regulares.

padrões: Representa o padrão de expressão regular para uma substring.

substituir_string: É uma substring que será substituída se a correspondência for encontrada.

A função REGEXP_INSTR() usa vários parâmetros opcionais fornecidos abaixo:

posição: É usado para especificar a posição na expressão dentro da string para iniciar a pesquisa. Se não especificarmos este parâmetro, ele começará na posição 1.

ocorrência: É usado para especificar qual ocorrência de correspondência iremos pesquisar. Se não especificarmos este parâmetro, todas as ocorrências serão substituídas.

tipo de partida: É uma string que nos permite refinar a expressão regular. Ele usa os seguintes caracteres possíveis para realizar a correspondência.

    c:Representa uma correspondência que diferencia maiúsculas de minúsculas.eu:Representa uma correspondência que não diferencia maiúsculas de minúsculas.eu:Representa um modo de múltiplas linhas que permite terminadores de linha dentro da string. Por padrão, esta função corresponde aos terminadores de linha no início e no final da string.n:É usado para modificar o . caractere (ponto) para corresponder aos terminadores de linha.em:Representa finais de linha somente Unix.

Vamos entender isso com vários exemplos.

Exemplo

A instrução a seguir explica o exemplo básico da função REGEXP_REPLACE no MySQL.

 mysql> SET @str = 'Javatpoint is a great websites'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'great', 'an educational') AS 'Replaceable String'; 

Aqui está o resultado:

Função MySQL REGEXP_REPLACE()

Suponha que nossa string de entrada contenha múltiplas correspondências dentro da string , então esta função substituirá todos eles. Veja as afirmações abaixo:

 mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'PGDCA') AS 'Replaceable String'; 

Aqui está o resultado:

Função MySQL REGEXP_REPLACE()

Se a string de entrada e a string substituível não corresponderem, as instruções retornarão a string original. Veja o exemplo abaixo:

 mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'MBA', 'PGDCA') AS 'Resultant String'; 

Aqui está o resultado:

Função MySQL REGEXP_REPLACE()

Se quisermos substituir a string por especificando a posição para iniciar a substituição, podemos usar a função REGEX_REPLACE da seguinte forma:

 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2) AS 'Replaceable String'; 

Nesta instrução, especificamos a posição como 2 para iniciar a substituição. Executando esta consulta, obteremos a saída abaixo, onde podemos ver que a primeira posição da string substituível não foi substituída.

Função MySQL REGEXP_REPLACE()

Sabemos que todas as ocorrências da string correspondente são substituídas por padrão. No entanto, também temos a opção de especificar a ocorrência específica para substituir a string correspondente usando o comando ocorrência parâmetro. Veja o exemplo abaixo:

 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2, 2) AS 'Replaceable String'; 

Neste exemplo, a posição inicial da string substituível é 2, que veio após o início da primeira ocorrência. Portanto, a ocorrência 2 tornou-se ocorrência 1 e a ocorrência 3 tornou-se ocorrência 2. Veja o resultado abaixo:

Função MySQL REGEXP_REPLACE()

Podemos fornecer um parâmetro adicional para refinar a expressão regular usando argumentos de tipo de correspondência. Por exemplo , podemos usá-lo para verificar se a correspondência diferencia maiúsculas de minúsculas ou inclui terminadores de linha. Veja o exemplo abaixo onde estamos especificando um maiúsculas e minúsculas e correspondência sem distinção entre maiúsculas e minúsculas:

 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'bba', 'MCA', 1, 0, 'c') AS ' Case-Sensitive', REGEXP_REPLACE(@str, 'bba', 'MCA', 1, 0, 'i') AS ' Case-Insensitive'; 

Aqui está o resultado:

Função MySQL REGEXP_REPLACE()