You are viewing an older version of this section. View current production version.
REGEXP_REPLACE
Searches a string for the first occurrence of a regular expression pattern and replaces that occurrence with a replacement string. If no occurrences are found, the search string is returned as is.
If you call REGEXP_REPLACE
and specify g
in the parameters
argument, the function performs a search and replace of all occurrences of a regular expression pattern with a replacement string.
REGEXP_REPLACE
supports the extended and advanced regular expression formats. You can set the global variable regexp_format
to specify which format you want to use.
Syntax
REGEXP_REPLACE (source_string, pattern, replace_string [, parameters]))
source_string
A string expression, such as a column name, to be searched.
pattern
A string representing a SQL standard regular expression.
replace_string
A string that replaces the first occurrence of the regular expression pattern. If you specify g
in the parameters
argument, replace_string
replaces all occurrences of the regular expression pattern.
parameters
Optional. If present, has one or more of the following values.
c
: Performs case-sensitive matching.
i
: Performs case-insensitive matching.
g
: Replaces all occurrences of a regular expression pattern with a replacement string.
If c
or i
is not specified, performs case-sensitive matching.
Examples
The following examples demonstrate how REGEXP_REPLACE
works when the global variable regexp_format
is set to 'extended'
.
Call to REGEXP_REPLACE |
Result | Comments |
---|---|---|
SELECT REGEXP_REPLACE('aadog','.dog','cat'); |
acat |
Replaces the first occurrence of any character followed by dog with cat . |
SELECT REGEXP_REPLACE('aadog','[:alpha:]dog','cat'); |
acat |
Replaces the first occurrence of any alpha character followed by dog with cat . |
SELECT REGEXP_REPLACE('aadog','\\wdog','cat'); |
acat |
Replaces the first occurrence of any alpha character followed by dog with cat . |
SELECT REGEXP_REPLACE('catcatcat','c','b'); |
batcatcat |
Replaces the first occurrence of c with b . |
SELECT REGEXP_REPLACE('CatCatCat','c','b','i'); |
batCatCat |
Replaces the first occurrence of c with b . Does a case-insensitive search. |
SELECT REGEXP_REPLACE('CatCatCat','c','b','ig'); |
batbatbat |
Replaces all occurrences of c with b . Does a case-insensitive search. |
The following examples demonstrate how REGEXP_INSTR
works when the global variable regexp_format
is set to 'advanced'
.
Call to REGEXP_REPLACE |
Result | Comments |
---|---|---|
SELECT REGEXP_REPLACE('dog58','\\d','A'); |
dogA8 |
Replaces the first occurrence of any digit with A . |
SELECT REGEXP_REPLACE('%26dog','\\w','B'); |
%B6dog |
Replaces the first occurrence of any alpha-numeric character with B . |
SELECT REGEXP_REPLACE('dog58','\\D','A'); |
Aog58 |
Replaces the first occurrence of any non-digit with A . |
SELECT REGEXP_REPLACE('%26dog','\\W','B'); |
B26dog |
Replaces the first occurrence of any non alpha-numeric character with B . |
SELECT REGEXP_REPLACE('apple banana','(.+) (.+)','\\2 \\1'); |
banana apple |
Uses backreferences. The nth group of parentheses is the nth backreference. Replaces the first backreference with the second, and vice-versa. |
Using REGEXP_REPLACE
With a Table
The following example shows how to call REGEXP_REPLACE
once per table row. This example uses extended regular expression matching. Advanced regular expression matching could be used as well.
SET GLOBAL regexp_format = 'extended';
DROP DATABASE IF EXISTS memsql_docs_example;
CREATE DATABASE memsql_docs_example;
USE memsql_docs_example;
CREATE TABLE example_table(id INT, text_field TEXT);
INSERT INTO example_table VALUES (1, 'the'), (2, 'athe'), (3, 'abthe'),
(4, 'abcthe'), (5, 'thethe');
SELECT id, text_field, REGEXP_REPLACE(text_field, '..the', 'to') FROM example_table
ORDER BY id;
Output
+------+------------+-------------------------------------------+
| id | text_field | REGEXP_REPLACE(text_field, '..the', 'to') |
+------+------------+-------------------------------------------+
| 1 | the | the |
| 2 | athe | athe |
| 3 | abthe | to |
| 4 | abcthe | ato |
| 5 | thethe | tto |
+------+------------+-------------------------------------------+