logo

Funkce MySQL REGEXP_REPLACE().

Funkce MySQL REGEXP_REPLACE() se používá pro porovnávání vzorů. Tato funkce vyhledá v řetězci vzor regulárního výrazu a nahradí každý výskyt vzoru se zadaným řetězcem, který odpovídá danému vzoru regulárního výrazu. Pokud je nalezena shoda, vrátí celý řetězec spolu s náhradami. Pokud není nalezena žádná shoda, vrácený řetězec se nezmění. Pokud mají výraz, vzory a nahrazující řetězec hodnotu NULL, funkce vrátí hodnotu NULL.

REGEXP_REPLACE(), REPLACE(), a the TRANSLATE() funkce v MySQL fungují stejně, až na to, že TRANSLATE nám umožňuje provádět více jednoznakových substitucí a funkce REPLACE nahrazuje jeden celý řetězec jiným řetězcem, zatímco REGEXP_REPLACE hledá v řetězci vzor regulárního výrazu.

Syntax

Níže je uvedena základní syntaxe pro použití této funkce v MySQL:

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

Vysvětlení parametru

Vysvětlení parametrů funkce REGEXP_REPLACE() je:

výraz: Je to vstupní řetězec, na kterém budeme vyhledávat parametry a funkce regulárních výrazů.

otázky k pohovoru v jazyce java

vzory: Představuje vzor regulárního výrazu pro podřetězec.

nahradit_řetězec: Je to podřetězec, který bude nahrazen, pokud bude nalezena shoda.

Funkce REGEXP_INSTR() používá různé volitelné parametry, které jsou uvedeny níže:

zrušit poslední potvrzení

pozice: Používá se k určení pozice ve výrazu v řetězci pro zahájení vyhledávání. Pokud tento parametr neuvedeme, začne na pozici 1.

výskyt: Slouží k určení, který výskyt shody budeme hledat. Pokud tento parametr neuvedeme, budou nahrazeny všechny výskyty.

match_type: Je to řetězec, který nám umožňuje upřesnit regulární výraz. K provádění porovnávání používá následující možné znaky.

    C:Představuje shodu rozlišující malá a velká písmena.já:Představuje párování bez rozlišení velkých a malých písmen.m:Představuje víceřádkový režim, který umožňuje zakončování řádků v řetězci. Ve výchozím nastavení tato funkce odpovídá zakončení řádku na začátku a na konci řetězce.n:Používá se k úpravě . znak (tečka), aby odpovídal zakončení řádků.v:Představuje pouze Unixové zakončení řádků.

Pojďme to pochopit na různých příkladech.

Příklad

Následující příkaz vysvětluje základní příklad funkce REGEXP_REPLACE v MySQL.

římské číslice 1-100
 mysql> SET @str = 'Javatpoint is a great websites'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'great', 'an educational') AS 'Replaceable String'; 

Zde je výstup:

Funkce MySQL REGEXP_REPLACE().

Předpokládejme, že náš vstupní řetězec obsahuje více shod v řetězci , pak tato funkce nahradí všechny. Viz níže uvedená prohlášení:

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

Zde je výstup:

Funkce MySQL REGEXP_REPLACE().

Pokud vstupní řetězec a nahraditelný řetězec nemají shodu, příkazy vrátí původní řetězec. Viz níže uvedený příklad:

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

Zde je výstup:

Funkce MySQL REGEXP_REPLACE().

Pokud chceme řetězec nahradit za upřesnění polohy pro zahájení výměny můžeme použít funkci REGEX_REPLACE takto:

jak číst ze souboru csv v java
 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2) AS 'Replaceable String'; 

V tomto prohlášení jsme specifikovali pozici jako 2 pro zahájení výměny. Provedením tohoto dotazu získáme níže uvedený výstup, kde vidíme, že první pozice nahraditelného řetězce není nahrazena.

Funkce MySQL REGEXP_REPLACE().

Víme, že všechny výskyty shodného řetězce jsou ve výchozím nastavení nahrazeny. Máme však také možnost určit konkrétní výskyt pro nahrazení shodného řetězce pomocí výskyt parametr. Viz níže uvedený příklad:

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

V tomto příkladu je počáteční pozice vyměnitelného řetězce 2, která přišla poté, co začal první výskyt. Proto se výskyt 2 stal výskytem 1 a výskyt 3 se stal výskytem 2. Viz níže uvedený výstup:

Funkce MySQL REGEXP_REPLACE().

Můžeme poskytnout další parametr pro upřesnění regulárního výrazu pomocí argumentů typu shody. Například , můžeme jej použít k ověření, zda shoda rozlišuje velká a malá písmena nebo zda obsahuje zakončovací znaky řádku. Viz níže uvedený příklad, kde specifikujeme a citlivý na velká písmena a shoda bez rozlišení velkých a malých písmen:

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

Zde je výstup:

Funkce MySQL REGEXP_REPLACE().