logo

Funzione MySQL REGEXP_REPLACE()

La funzione MySQL REGEXP_REPLACE() viene utilizzata per la corrispondenza dei modelli. Questa funzione cerca in una stringa un modello di espressione regolare e sostituisce ogni occorrenza del modello con la stringa specificata che corrisponde al modello di espressione regolare specificato. Se viene trovata la corrispondenza, restituisce l'intera stringa insieme alle sostituzioni. Se non viene trovata alcuna corrispondenza, la stringa restituita rimane invariata. Se l'espressione, i modelli e la stringa di sostituzione sono NULL, la funzione restituirà NULL.

REGEXP_REPLACE(), SOSTITUISCI(), E il TRADURRE() funzione dentro MySQL funzionano allo stesso modo, tranne per il fatto che TRANSLATE ci consente di effettuare più sostituzioni di un singolo carattere e la funzione REPLACE sostituisce un'intera stringa con un'altra stringa, mentre REGEXP_REPLACE cerca in una stringa un modello di espressione regolare.

Sintassi

Quella che segue è una sintassi di base per utilizzare questa funzione in MySQL:

 REGEXP_REPLACE (expression, pattern, replace_string[, pos[, occurrence[, match_type]]]) 

Parametro Spiegazione

La spiegazione dei parametri della funzione REGEXP_REPLACE() è:

espressione: Si tratta di una stringa di input sulla quale eseguiremo la ricerca attraverso parametri e funzioni delle espressioni regolari.

modelli: Rappresenta il modello di espressione regolare per una sottostringa.

sostituisci_stringa: È una sottostringa che verrà sostituita se viene trovata la corrispondenza.

La funzione REGEXP_INSTR() utilizza vari parametri facoltativi indicati di seguito:

posizione: Viene utilizzato per specificare la posizione nell'espressione all'interno della stringa per avviare la ricerca. Se non specifichiamo questo parametro, inizierà dalla posizione 1.

occorrenza: Viene utilizzato per specificare quale occorrenza di una corrispondenza cercheremo. Se non specifichiamo questo parametro, tutte le occorrenze vengono sostituite.

tipo_corrispondenza: È una stringa che ci permette di perfezionare l'espressione regolare. Utilizza i seguenti caratteri possibili per eseguire la corrispondenza.

    C:Rappresenta una corrispondenza con distinzione tra maiuscole e minuscole.io:Rappresenta una corrispondenza senza distinzione tra maiuscole e minuscole.M:Rappresenta una modalità a più righe che consente terminatori di riga all'interno della stringa. Per impostazione predefinita, questa funzione corrisponde ai terminatori di riga all'inizio e alla fine della stringa.N:Viene utilizzato per modificare il file . (punto) per corrispondere ai terminatori di riga.In:Rappresenta le terminazioni di riga solo per Unix.

Cerchiamo di capirlo con vari esempi.

Esempio

La seguente istruzione spiega l'esempio di base della funzione REGEXP_REPLACE in MySQL.

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

Ecco l'output:

Funzione MySQL REGEXP_REPLACE()

Supponiamo che la nostra stringa di input contenga più corrispondenze all'interno della stringa , questa funzione li sostituirà tutti. Vedere le seguenti dichiarazioni:

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

Ecco l'output:

Funzione MySQL REGEXP_REPLACE()

Se la stringa di input e la stringa sostituibile non hanno corrispondenza, le istruzioni restituiscono la stringa originale. Vedi l'esempio seguente:

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

Ecco l'output:

Funzione MySQL REGEXP_REPLACE()

Se vogliamo sostituire la stringa con specificando la posizione per avviare la sostituzione, possiamo utilizzare la funzione REGEX_REPLACE come segue:

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

In questa dichiarazione, abbiamo specificato la posizione 2 per iniziare la sostituzione. Eseguendo questa query, otterremo l'output seguente in cui possiamo vedere che la prima posizione della stringa sostituibile non è stata sostituita.

Funzione MySQL REGEXP_REPLACE()

Sappiamo che tutte le occorrenze della stringa corrispondente vengono sostituite per impostazione predefinita. Tuttavia, abbiamo anche un'opzione per specificare l'occorrenza specifica per sostituire la stringa corrispondente utilizzando il comando occorrenza parametro. Vedi l'esempio seguente:

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

In questo esempio, la posizione iniziale della stringa sostituibile è 2 e viene dopo l'inizio della prima occorrenza. Pertanto, l'occorrenza 2 è diventata l'occorrenza 1 e l'occorrenza 3 è diventata l'occorrenza 2. Vedere l'output seguente:

Funzione MySQL REGEXP_REPLACE()

Possiamo fornire un parametro aggiuntivo per perfezionare l'espressione regolare utilizzando gli argomenti del tipo di corrispondenza. Per esempio , possiamo usarlo per verificare se la corrispondenza fa distinzione tra maiuscole e minuscole o include terminatori di riga. Vedi l'esempio seguente in cui stiamo specificando a maiuscole e minuscole E corrispondenza senza distinzione tra maiuscole e minuscole:

 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'; 

Ecco l'output:

Funzione MySQL REGEXP_REPLACE()