logo

Функція MySQL REGEXP_REPLACE().

Функція MySQL REGEXP_REPLACE() використовується для зіставлення шаблонів. Ця функція шукає в рядку шаблон регулярного виразу та замінює кожне входження шаблону із зазначеним рядком, який відповідає даному шаблону регулярного виразу. Якщо збіг знайдено, він повертає весь рядок разом із замінами. Якщо відповідності не знайдено, повернутий рядок не змінюється. Якщо вираз, шаблони та рядок заміни мають значення NULL, функція поверне NULL.

REGEXP_REPLACE(), REPLACE(), і ПЕРЕКЛАД() функція в MySQL працюють так само, за винятком того, що функція TRANSLATE дозволяє нам робити кілька односимвольних замін, а функція REPLACE замінює один цілий рядок іншим рядком, тоді як REGEXP_REPLACE шукає в рядку шаблон регулярного виразу.

Синтаксис

Нижче наведено базовий синтаксис для використання цієї функції в MySQL:

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

Параметр Пояснення

Пояснення параметрів функції REGEXP_REPLACE() таке:

вираз: Це вхідний рядок, у якому ми будемо виконувати пошук параметрів регулярних виразів і функцій.

візерунки: Він представляє шаблон регулярного виразу для підрядка.

замінити рядок: Це підрядок, який буде замінено, якщо збіг знайдено.

Функція REGEXP_INSTR() використовує різні додаткові параметри, наведені нижче:

позиція: Він використовується для визначення позиції у виразі в рядку для початку пошуку. Якщо ми не вкажемо цей параметр, він буде починатися з позиції 1.

виникнення: Він використовується для вказівки відповідності, яку ми будемо шукати. Якщо ми не вказуємо цей параметр, усі входження замінюються.

match_type: Це рядок, який дозволяє нам уточнити регулярний вираз. Він використовує наступні можливі символи для виконання відповідності.

    c:Він представляє відповідність з урахуванням регістру.я:Він представляє відповідність без урахування регістру.м:Він представляє багаторядковий режим, який допускає термінатори рядків у рядку. За замовчуванням ця функція зіставляє термінатори рядка на початку та в кінці рядка.n:Він використовується для модифікації . символ (крапка) для відповідності термінаторам рядка.в:Він представляє закінчення рядків лише для Unix.

Розберемося в цьому на різних прикладах.

приклад

Наступний оператор пояснює базовий приклад функції REGEXP_REPLACE у MySQL.

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

Ось результат:

Функція MySQL REGEXP_REPLACE().

Припустимо, що наш вхідний рядок містить кілька збігів у рядку , тоді ця функція замінить їх усіх. Перегляньте наведені нижче заяви:

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

Ось результат:

Функція MySQL REGEXP_REPLACE().

Якщо вхідний рядок і замінюваний рядок не збігаються, оператори повертають вихідний рядок. Дивіться приклад нижче:

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

Ось результат:

Функція MySQL REGEXP_REPLACE().

Якщо ми хочемо замінити рядок на із зазначенням посади щоб почати заміну, ми можемо використати функцію REGEX_REPLACE наступним чином:

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

У цій заяві ми вказали позицію 2 для початку заміни. Виконуючи цей запит, ми отримаємо наведені нижче результати, де ми бачимо, що перша позиція замінюваного рядка не замінена.

Функція MySQL REGEXP_REPLACE().

Ми знаємо, що всі входження відповідного рядка замінюються за замовчуванням. Однак у нас також є можливість вказати конкретне входження для заміни відповідного рядка за допомогою виникнення параметр. Дивіться приклад нижче:

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

У цьому прикладі початкова позиція змінного рядка дорівнює 2, яка з’явилася після початку першого входження. Таким чином, випадок 2 став виходом 1, а випадок 3 став виходом 2. Дивіться наведені нижче результати:

Функція MySQL REGEXP_REPLACE().

Ми можемо надати додатковий параметр для уточнення регулярного виразу за допомогою аргументів типу відповідності. Наприклад , ми можемо використовувати його, щоб перевірити, чи збіг чутливий до регістру чи містить символи закінчення рядків. Дивіться приклад нижче, де ми вказуємо a чутливий до регістру і відповідність без урахування регістру:

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

Ось результат:

Функція MySQL REGEXP_REPLACE().