mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-6965 non-captured group \2 in regexp_replace
This commit is contained in:
@ -839,3 +839,9 @@ SELECT REGEXP_REPLACE('abc','^(.*)(.*)$','\\1/\\2');
|
||||
SELECT REGEXP_SUBSTR('abc','.+');
|
||||
REGEXP_SUBSTR('abc','.+')
|
||||
a
|
||||
SELECT REGEXP_REPLACE('abc','^(.*)(.*)$','\\1/\\2');
|
||||
REGEXP_REPLACE('abc','^(.*)(.*)$','\\1/\\2')
|
||||
/abc
|
||||
SET default_regex_flags=DEFAULT;
|
||||
#
|
||||
# MDEV-6965 non-captured group \2 in regexp_replace
|
||||
|
@ -397,3 +397,8 @@ SET default_regex_flags='UNGREEDY';
|
||||
SELECT REGEXP_SUBSTR('abc','.+');
|
||||
SELECT REGEXP_REPLACE('abc','^(.*)(.*)$','\\1/\\2');
|
||||
SET default_regex_flags=DEFAULT;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-6965 non-captured group \2 in regexp_replace
|
||||
--echo #
|
||||
SELECT REGEXP_REPLACE('1 foo and bar', '(\\d+) foo and (\\d+ )?bar', '\\1 this and \\2that');
|
||||
|
@ -1379,13 +1379,16 @@ bool Item_func_regexp_replace::append_replacement(String *str,
|
||||
break; /* End of line */
|
||||
beg+= cnv;
|
||||
|
||||
if ((n= ((int) wc) - '0') >= 0 && n <= 9 && n < re.nsubpatterns())
|
||||
if ((n= ((int) wc) - '0') >= 0 && n <= 9)
|
||||
{
|
||||
if (n < re.nsubpatterns())
|
||||
{
|
||||
/* A valid sub-pattern reference found */
|
||||
int pbeg= re.subpattern_start(n), plength= re.subpattern_end(n) - pbeg;
|
||||
if (str->append(source->str + pbeg, plength, cs))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
|
Reference in New Issue
Block a user