Impressum func_regexp_pcre.result Sprache: unbekannt
|
|
SET NAMES utf8 ;
#
# MDEV- 4425 REGEXP enhancements
#
#
# Checking RLIKE
#
SELECT 'à' RLIKE '^.$';
'à' RLIKE '^.$'
1
SELECT 'à' RLIKE '\\x{00E0}';
'à' RLIKE '\\x{00E0}'
1
SELECT 'À' RLIKE '\\x{00E0}';
'À' RLIKE '\\x{00E0}'
1
SELECT 'à' RLIKE '\\x{00C0}';
'à' RLIKE '\\x{00C0}'
1
SELECT 'À' RLIKE '\\x{00C0}';
'À' RLIKE '\\x{00C0}'
1
SELECT 'à' RLIKE '\\x{00E0}' COLLATE utf8_bin ;
'à' RLIKE '\\x{00E0}' COLLATE utf8_bin
1
SELECT 'À' RLIKE '\\x{00E0}' COLLATE utf8_bin ;
'À' RLIKE '\\x{00E0}' COLLATE utf8_bin
0
SELECT 'à' RLIKE '\\x{00C0}' COLLATE utf8_bin ;
'à' RLIKE '\\x{00C0}' COLLATE utf8_bin
0
SELECT 'À' RLIKE '\\x{00C0}' COLLATE utf8_bin ;
'À' RLIKE '\\x{00C0}' COLLATE utf8_bin
1
CREATE TABLE t1 (s VARCHAR( 10) CHARACTER SET utf8) ;
INSERT INTO t1 VALUES ( 'a'),( 'A') ;
CREATE TABLE t2 (p VARCHAR( 10) CHARACTER SET utf8) ;
INSERT INTO t2 VALUES ( 'a'),( '(?i)a'),( '(?-i)a'),( 'A'),( '(?i)A'),( '(?-i)A') ;
SELECT s,p,s RLIKE p, s COLLATE utf8_bin RLIKE p FROM t1,t2 ORDER BY BINARY s, BINARY p ;
s p s RLIKE p s COLLATE utf8_bin RLIKE p
A (?-i)A 1 1
A (?-i)a 0 0
A (?i)A 1 1
A (?i)a 1 1
A A 1 1
A a 1 0
a (?-i)A 0 0
a (?-i)a 1 1
a (?i)A 1 1
a (?i)a 1 1
a A 1 0
a a 1 1
DROP TABLE t1,t2 ;
CREATE TABLE t1 (ch VARCHAR( 22)) CHARACTER SET utf8 ;
CREATE TABLE t2 (class VARCHAR( 32)) CHARACTER SET utf8 ;
INSERT INTO t1 VALUES ( 'Я'),( 'Σ'),( 'A'),( 'À') ;
INSERT INTO t1 VALUES ( 'я'),( 'σ'),( 'a'),( 'à') ;
INSERT INTO t1 VALUES ( '㐗'),( '갷'),( 'ප') ;
INSERT INTO t1 VALUES ( '1'),( '௨') ;
INSERT INTO t2 VALUES ( '\\p{Cyrillic}'),( '\\p{Greek}'),( '\\p{Latin}') ;
INSERT INTO t2 VALUES ( '\\p{Han}'),( '\\p{Hangul}') ;
INSERT INTO t2 VALUES ( '\\p{Sinhala}'), ( '\\p{Tamil}') ;
INSERT INTO t2 VALUES ( '\\p{L}'), /* buggy before v10.45 ('\\p{Ll}'),('\\p{Lu}'),*/ ('\\p{L&}');
INSERT INTO t2 VALUES ( '[[:alpha:]]'),( '[[:digit:]]') ;
SELECT class, ch, ch RLIKE class FROM t1, t2 ORDER BY BINARY class, BINARY ch ;
class ch ch RLIKE class
[[:alpha:]] 1 0
[[:alpha:]] A 1
[[:alpha:]] a 1
[[:alpha:]] À 1
[[:alpha:]] à 1
[[:alpha:]] Σ 1
[[:alpha:]] σ 1
[[:alpha:]] Я 1
[[:alpha:]] я 1
[[:alpha:]] ௨ 0
[[:alpha:]] ප 1
[[:alpha:]] 㐗 1
[[:alpha:]] 갷 1
[[:digit:]] 1 1
[[:digit:]] A 0
[[:digit:]] a 0
[[:digit:]] À 0
[[:digit:]] à 0
[[:digit:]] Σ 0
[[:digit:]] σ 0
[[:digit:]] Я 0
[[:digit:]] я 0
[[:digit:]] ௨ 1
[[:digit:]] ප 0
[[:digit:]] 㐗 0
[[:digit:]] 갷 0
\p{Cyrillic} 1 0
\p{Cyrillic} A 0
\p{Cyrillic} a 0
\p{Cyrillic} À 0
\p{Cyrillic} à 0
\p{Cyrillic} Σ 0
\p{Cyrillic} σ 0
\p{Cyrillic} Я 1
\p{Cyrillic} я 1
\p{Cyrillic} ௨ 0
\p{Cyrillic} ප 0
\p{Cyrillic} 㐗 0
\p{Cyrillic} 갷 0
\p{Greek} 1 0
\p{Greek} A 0
\p{Greek} a 0
\p{Greek} À 0
\p{Greek} à 0
\p{Greek} Σ 1
\p{Greek} σ 1
\p{Greek} Я 0
\p{Greek} я 0
\p{Greek} ௨ 0
\p{Greek} ප 0
\p{Greek} 㐗 0
\p{Greek} 갷 0
\p{Hangul} 1 0
\p{Hangul} A 0
\p{Hangul} a 0
\p{Hangul} À 0
\p{Hangul} à 0
\p{Hangul} Σ 0
\p{Hangul} σ 0
\p{Hangul} Я 0
\p{Hangul} я 0
\p{Hangul} ௨ 0
\p{Hangul} ප 0
\p{Hangul} 㐗 0
\p{Hangul} 갷 1
\p{Han} 1 0
\p{Han} A 0
\p{Han} a 0
\p{Han} À 0
\p{Han} à 0
\p{Han} Σ 0
\p{Han} σ 0
\p{Han} Я 0
\p{Han} я 0
\p{Han} ௨ 0
\p{Han} ප 0
\p{Han} 㐗 1
\p{Han} 갷 0
\p{L&} 1 0
\p{L&} A 1
\p{L&} a 1
\p{L&} À 1
\p{L&} à 1
\p{L&} Σ 1
\p{L&} σ 1
\p{L&} Я 1
\p{L&} я 1
\p{L&} ௨ 0
\p{L&} ප 0
\p{L&} 㐗 0
\p{L&} 갷 0
\p{Latin} 1 0
\p{Latin} A 1
\p{Latin} a 1
\p{Latin} À 1
\p{Latin} à 1
\p{Latin} Σ 0
\p{Latin} σ 0
\p{Latin} Я 0
\p{Latin} я 0
\p{Latin} ௨ 0
\p{Latin} ප 0
\p{Latin} 㐗 0
\p{Latin} 갷 0
\p{L} 1 0
\p{L} A 1
\p{L} a 1
\p{L} À 1
\p{L} à 1
\p{L} Σ 1
\p{L} σ 1
\p{L} Я 1
\p{L} я 1
\p{L} ௨ 0
\p{L} ප 1
\p{L} 㐗 1
\p{L} 갷 1
\p{Sinhala} 1 0
\p{Sinhala} A 0
\p{Sinhala} a 0
\p{Sinhala} À 0
\p{Sinhala} à 0
\p{Sinhala} Σ 0
\p{Sinhala} σ 0
\p{Sinhala} Я 0
\p{Sinhala} я 0
\p{Sinhala} ௨ 0
\p{Sinhala} ප 1
\p{Sinhala} 㐗 0
\p{Sinhala} 갷 0
\p{Tamil} 1 0
\p{Tamil} A 0
\p{Tamil} a 0
\p{Tamil} À 0
\p{Tamil} à 0
\p{Tamil} Σ 0
\p{Tamil} σ 0
\p{Tamil} Я 0
\p{Tamil} я 0
\p{Tamil} ௨ 1
\p{Tamil} ප 0
\p{Tamil} 㐗 0
\p{Tamil} 갷 0
DROP TABLE t1, t2 ;
SELECT 0xFF RLIKE '\\w';
0xFF RLIKE '\\w'
0
SELECT 0xFF RLIKE '(*UCP)\\w';
0xFF RLIKE '(*UCP)\\w'
1
SELECT '\n' RLIKE '(*CR)';
'\n' RLIKE '(*CR)'
1
SELECT '\n' RLIKE '(*LF)';
'\n' RLIKE '(*LF)'
1
SELECT '\n' RLIKE '(*CRLF)';
'\n' RLIKE '(*CRLF)'
1
SELECT '\n' RLIKE '(*ANYCRLF)';
'\n' RLIKE '(*ANYCRLF)'
1
SELECT '\n' RLIKE '(*ANY)';
'\n' RLIKE '(*ANY)'
1
SELECT 'a\nb' RLIKE '(*LF)(?m)^a$';
'a\nb' RLIKE '(*LF)(?m)^a$'
1
SELECT 'a\nb' RLIKE '(*CR)(?m)^a$';
'a\nb' RLIKE '(*CR)(?m)^a$'
0
SELECT 'a\nb' RLIKE '(*CRLF)(?m)^a$';
'a\nb' RLIKE '(*CRLF)(?m)^a$'
0
SELECT 'a\nb' RLIKE '(*ANYCRLF)(?m)^a$';
'a\nb' RLIKE '(*ANYCRLF)(?m)^a$'
1
SELECT 'a\rb' RLIKE '(*LF)(?m)^a$';
'a\rb' RLIKE '(*LF)(?m)^a$'
0
SELECT 'a\rb' RLIKE '(*CR)(?m)^a$';
'a\rb' RLIKE '(*CR)(?m)^a$'
1
SELECT 'a\rb' RLIKE '(*CRLF)(?m)^a$';
'a\rb' RLIKE '(*CRLF)(?m)^a$'
0
SELECT 'a\rb' RLIKE '(*ANYCRLF)(?m)^a$';
'a\rb' RLIKE '(*ANYCRLF)(?m)^a$'
1
SELECT 'a\r\nb' RLIKE '(*LF)(?m)^a$';
'a\r\nb' RLIKE '(*LF)(?m)^a$'
0
SELECT 'a\r\nb' RLIKE '(*CR)(?m)^a$';
'a\r\nb' RLIKE '(*CR)(?m)^a$'
1
SELECT 'a\r\nb' RLIKE '(*CRLF)(?m)^a$';
'a\r\nb' RLIKE '(*CRLF)(?m)^a$'
1
SELECT 'a\r\nb' RLIKE '(*ANYCRLF)(?m)^a$';
'a\r\nb' RLIKE '(*ANYCRLF)(?m)^a$'
1
SELECT 'aa' RLIKE '(a)\\g1';
'aa' RLIKE '(a)\\g1'
1
SELECT 'aa bb' RLIKE '(a)\\g1 (b)\\g2';
'aa bb' RLIKE '(a)\\g1 (b)\\g2'
1
SELECT 'aaaaa' RLIKE 'a{0,5}';
'aaaaa' RLIKE 'a{0,5}'
1
SELECT 'aaaaa' RLIKE 'a{1,3}';
'aaaaa' RLIKE 'a{1,3}'
1
SELECT 'aaaaa' RLIKE 'a{0,}';
'aaaaa' RLIKE 'a{0,}'
1
SELECT 'aaaaa' RLIKE 'a{10,20}';
'aaaaa' RLIKE 'a{10,20}'
0
SELECT 'aabb' RLIKE 'a(?R)?b';
'aabb' RLIKE 'a(?R)?b'
1
SELECT 'aabb' RLIKE 'aa(?R)?bb';
'aabb' RLIKE 'aa(?R)?bb'
1
SELECT 'abcc' RLIKE 'a(?>bc|b)c';
'abcc' RLIKE 'a(?>bc|b)c'
1
SELECT 'abc' RLIKE 'a(?>bc|b)c';
'abc' RLIKE 'a(?>bc|b)c'
0
SELECT 'ab' RLIKE 'a(?!b)';
'ab' RLIKE 'a(?!b)'
0
SELECT 'ac' RLIKE 'a(?!b)';
'ac' RLIKE 'a(?!b)'
1
SELECT 'ab' RLIKE 'a(?=b)';
'ab' RLIKE 'a(?=b)'
1
SELECT 'ac' RLIKE 'a(?=b)';
'ac' RLIKE 'a(?=b)'
0
SELECT 'ab' RLIKE '(?<!a)b';
'ab' RLIKE '(?<!a)b'
0
SELECT 'cb' RLIKE '(?<!a)b';
'cb' RLIKE '(?<!a)b'
1
SELECT 'ab' RLIKE '(?<=a)b';
'ab' RLIKE '(?<=a)b'
1
SELECT 'cb' RLIKE '(?<=a)b';
'cb' RLIKE '(?<=a)b'
0
SELECT 'aa' RLIKE '(?P<pattern>a)(?P=pattern)';
'aa' RLIKE '(?P<pattern>a)(?P=pattern)'
1
SELECT 'aba' RLIKE '(?P<pattern>a)b(?P=pattern)';
'aba' RLIKE '(?P<pattern>a)b(?P=pattern)'
1
SELECT 'a' RLIKE 'a(?#comment)';
'a' RLIKE 'a(?#comment)'
1
SELECT 'aa' RLIKE 'a(?#comment)a';
'aa' RLIKE 'a(?#comment)a'
1
SELECT 'aba' RLIKE 'a(?#b)a';
'aba' RLIKE 'a(?#b)a'
0
SELECT 'aaa' RLIKE '\\W\\W\\W';
'aaa' RLIKE '\\W\\W\\W'
0
SELECT '%' RLIKE '\\W';
'%' RLIKE '\\W'
1
SELECT '%a$' RLIKE '\\W.\\W';
'%a$' RLIKE '\\W.\\W'
1
SELECT '123' RLIKE '\\d\\d\\d';
'123' RLIKE '\\d\\d\\d'
1
SELECT 'aaa' RLIKE '\\d\\d\\d';
'aaa' RLIKE '\\d\\d\\d'
0
SELECT '1a3' RLIKE '\\d.\\d';
'1a3' RLIKE '\\d.\\d'
1
SELECT 'a1b' RLIKE '\\d.\\d';
'a1b' RLIKE '\\d.\\d'
0
SELECT '8' RLIKE '\\D';
'8' RLIKE '\\D'
0
SELECT 'a' RLIKE '\\D';
'a' RLIKE '\\D'
1
SELECT '%' RLIKE '\\D';
'%' RLIKE '\\D'
1
SELECT 'a1' RLIKE '\\D\\d';
'a1' RLIKE '\\D\\d'
1
SELECT 'a1' RLIKE '\\d\\D';
'a1' RLIKE '\\d\\D'
0
SELECT '\t' RLIKE '\\s';
'\t' RLIKE '\\s'
1
SELECT '\r' RLIKE '\\s';
'\r' RLIKE '\\s'
1
SELECT '\n' RLIKE '\\s';
'\n' RLIKE '\\s'
1
SELECT '\v' RLIKE '\\s';
'\v' RLIKE '\\s'
0
SELECT 'a' RLIKE '\\S';
'a' RLIKE '\\S'
1
SELECT '1' RLIKE '\\S';
'1' RLIKE '\\S'
1
SELECT '!' RLIKE '\\S';
'!' RLIKE '\\S'
1
SELECT '.' RLIKE '\\S';
'.' RLIKE '\\S'
1
SELECT 'abc\0def' REGEXP 'def';
'abc\0def' REGEXP 'def'
1
SELECT 'abc\0def' REGEXP 'abc\\x{00}def';
'abc\0def' REGEXP 'abc\\x{00}def'
1
SELECT HEX(REGEXP_SUBSTR( 'abc\0def', 'abc\\x{00}def')) ;
HEX(REGEXP_SUBSTR( 'abc\0def', 'abc\\x{00}def'))
61626300646566
#
# Checking REGEXP_REPLACE
#
CREATE TABLE t1 AS SELECT REGEXP_REPLACE( 'abc', 'b', 'x') ;
SHOW CREATE TABLE t1 ;
Table Create Table
t1 CREATE TABLE `t1` (
`REGEXP_REPLACE( 'abc', 'b', 'x')` longtext DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
DROP TABLE t1 ;
EXPLAIN EXTENDED SELECT REGEXP_REPLACE( 'abc', 'b', 'x') ;
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Note 1003 select regexp_replace( 'abc', 'b', 'x') AS `REGEXP_REPLACE( 'abc', 'b', 'x')`
SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR
CREATE TABLE t1 AS SELECT REGEXP_REPLACE( 'abc', 'b', 'x')+ 0;
Warnings:
Warning 1292 Truncated incorrect DOUBLE value: 'axc'
SHOW CREATE TABLE t1 ;
Table Create Table
t1 CREATE TABLE `t1` (
`REGEXP_REPLACE( 'abc', 'b', 'x')+ 0` double NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
DROP TABLE t1 ;
SELECT REGEXP_REPLACE(NULL, 'b', 'c') ;
REGEXP_REPLACE(NULL, 'b', 'c')
NULL
SELECT REGEXP_REPLACE( 'a',NULL, 'c') ;
REGEXP_REPLACE( 'a',NULL, 'c')
NULL
SELECT REGEXP_REPLACE( 'a', 'b',NULL) ;
REGEXP_REPLACE( 'a', 'b',NULL)
NULL
SELECT REGEXP_REPLACE( 'a', 'x', 'b') ;
REGEXP_REPLACE( 'a', 'x', 'b')
a
SELECT REGEXP_REPLACE( 'a', '', 'b') ;
REGEXP_REPLACE( 'a', '', 'b')
a
SELECT REGEXP_REPLACE( 'a5b ab a5b', '(?<=a)5*(?=b)', 'x') ;
REGEXP_REPLACE( 'a5b ab a5b', '(?<=a)5*(?=b)', 'x')
axb ab a5b
SELECT REGEXP_REPLACE( 'a5b a5b a5b', '(?<=a)5*(?=b)', 'x') ;
REGEXP_REPLACE( 'a5b a5b a5b', '(?<=a)5*(?=b)', 'x')
axb axb axb
SELECT REGEXP_REPLACE( 'A', 'a', 'b') ;
REGEXP_REPLACE( 'A', 'a', 'b')
b
SELECT REGEXP_REPLACE( 'a', 'A', 'b') ;
REGEXP_REPLACE( 'a', 'A', 'b')
b
SELECT REGEXP_REPLACE( 'A' COLLATE utf8_bin, 'a', 'b') ;
REGEXP_REPLACE( 'A' COLLATE utf8_bin, 'a', 'b')
A
SELECT REGEXP_REPLACE( 'a' COLLATE utf8_bin, 'A', 'b') ;
REGEXP_REPLACE( 'a' COLLATE utf8_bin, 'A', 'b')
a
SELECT REGEXP_REPLACE( 'James Bond', '(.*) (.*)', '\\2, \\1 \\2') ;
REGEXP_REPLACE( 'James Bond', '(.*) (.*)', '\\2, \\1 \\2')
Bond, James Bond
SELECT REGEXP_REPLACE( 'абвгд', 'в', 'ц') ;
REGEXP_REPLACE( 'абвгд', 'в', 'ц')
абцгд
SELECT REGEXP_REPLACE( 'г', 0xB3, 0xB4) ;
REGEXP_REPLACE( 'г', 0xB3, 0xB4)
д
SELECT REGEXP_REPLACE( 'aaaa', 'a', 'b') ;
REGEXP_REPLACE( 'aaaa', 'a', 'b')
bbbb
SELECT REGEXP_REPLACE( 'aaaa', '(?<=.)a', 'b') ;
REGEXP_REPLACE( 'aaaa', '(?<=.)a', 'b')
abbb
SELECT REGEXP_REPLACE( 'aaaa', 'a(?=.)', 'b') ;
REGEXP_REPLACE( 'aaaa', 'a(?=.)', 'b')
bbba
SELECT REGEXP_REPLACE( 'aaaa', '(?<=.)a(?=.)', 'b') ;
REGEXP_REPLACE( 'aaaa', '(?<=.)a(?=.)', 'b')
abba
SELECT REGEXP_REPLACE( 'a\nb', '(*LF)(?m)^a$', 'c') ;
REGEXP_REPLACE( 'a\nb', '(*LF)(?m)^a$', 'c')
c
b
SELECT REGEXP_REPLACE( 'a\nb', '(*CR)(?m)^a$', 'c') ;
REGEXP_REPLACE( 'a\nb', '(*CR)(?m)^a$', 'c')
a
b
SELECT REGEXP_REPLACE( 'a\nb', '(*CRLF)(?m)^a$', 'c') ;
REGEXP_REPLACE( 'a\nb', '(*CRLF)(?m)^a$', 'c')
a
b
SELECT REGEXP_REPLACE( 'a\nb', '(*ANYCRLF)(?m)^a$', 'c') ;
REGEXP_REPLACE( 'a\nb', '(*ANYCRLF)(?m)^a$', 'c')
c
b
SELECT REGEXP_REPLACE( 'a\rb', '(*LF)(?m)^a$', 'c') ;
REGEXP_REPLACE( 'a\rb', '(*LF)(?m)^a$', 'c')
a
b
SELECT REGEXP_REPLACE( 'a\rb', '(*CR)(?m)^a$', 'c') ;
REGEXP_REPLACE( 'a\rb', '(*CR)(?m)^a$', 'c')
c
b
SELECT REGEXP_REPLACE( 'a\rb', '(*CRLF)(?m)^a$', 'c') ;
REGEXP_REPLACE( 'a\rb', '(*CRLF)(?m)^a$', 'c')
a
b
SELECT REGEXP_REPLACE( 'a\rb', '(*ANYCRLF)(?m)^a$', 'c') ;
REGEXP_REPLACE( 'a\rb', '(*ANYCRLF)(?m)^a$', 'c')
c
b
SELECT REGEXP_REPLACE( 'a\r\nb', '(*LF)(?m)^a$', 'c') ;
REGEXP_REPLACE( 'a\r\nb', '(*LF)(?m)^a$', 'c')
a
b
SELECT REGEXP_REPLACE( 'a\r\nb', '(*CR)(?m)^a$', 'c') ;
REGEXP_REPLACE( 'a\r\nb', '(*CR)(?m)^a$', 'c')
c
b
SELECT REGEXP_REPLACE( 'a\r\nb', '(*CRLF)(?m)^a$', 'c') ;
REGEXP_REPLACE( 'a\r\nb', '(*CRLF)(?m)^a$', 'c')
c
b
SELECT REGEXP_REPLACE( 'a\r\nb', '(*ANYCRLF)(?m)^a$', 'c') ;
REGEXP_REPLACE( 'a\r\nb', '(*ANYCRLF)(?m)^a$', 'c')
c
b
SELECT REGEXP_REPLACE( 'aa', '(a)\\g1', 'b') ;
REGEXP_REPLACE( 'aa', '(a)\\g1', 'b')
b
SELECT REGEXP_REPLACE( 'aa bb', '(a)\\g1 (b)\\g2', 'c') ;
REGEXP_REPLACE( 'aa bb', '(a)\\g1 (b)\\g2', 'c')
c
SELECT REGEXP_REPLACE( 'aaaaa', 'a{1,3}', 'b') ;
REGEXP_REPLACE( 'aaaaa', 'a{1,3}', 'b')
bb
SELECT REGEXP_REPLACE( 'aaaaa', 'a{10,20}', 'b') ;
REGEXP_REPLACE( 'aaaaa', 'a{10,20}', 'b')
aaaaa
SELECT REGEXP_REPLACE( 'daabbd', 'a(?R)?b', 'c') ;
REGEXP_REPLACE( 'daabbd', 'a(?R)?b', 'c')
dcd
SELECT REGEXP_REPLACE( 'daabbd', 'aa(?R)?bb', 'c') ;
REGEXP_REPLACE( 'daabbd', 'aa(?R)?bb', 'c')
dcd
SELECT REGEXP_REPLACE( 'dabccd', 'a(?>bc|b)c', 'e') ;
REGEXP_REPLACE( 'dabccd', 'a(?>bc|b)c', 'e')
ded
SELECT REGEXP_REPLACE( 'dabcd', 'a(?>bc|b)c', 'e') ;
REGEXP_REPLACE( 'dabcd', 'a(?>bc|b)c', 'e')
dabcd
SELECT REGEXP_REPLACE( 'ab', 'a(?!b)', 'e') ;
REGEXP_REPLACE( 'ab', 'a(?!b)', 'e')
ab
SELECT REGEXP_REPLACE( 'ac', 'a(?!b)', 'e') ;
REGEXP_REPLACE( 'ac', 'a(?!b)', 'e')
ec
SELECT REGEXP_REPLACE( 'ab', 'a(?=b)', 'e') ;
REGEXP_REPLACE( 'ab', 'a(?=b)', 'e')
eb
SELECT REGEXP_REPLACE( 'ac', 'a(?=b)', 'e') ;
REGEXP_REPLACE( 'ac', 'a(?=b)', 'e')
ac
SELECT REGEXP_REPLACE( 'ab', '(?<!a)b', 'e') ;
REGEXP_REPLACE( 'ab', '(?<!a)b', 'e')
ab
SELECT REGEXP_REPLACE( 'cb', '(?<!a)b', 'e') ;
REGEXP_REPLACE( 'cb', '(?<!a)b', 'e')
ce
SELECT REGEXP_REPLACE( 'ab', '(?<=a)b', 'e') ;
REGEXP_REPLACE( 'ab', '(?<=a)b', 'e')
ae
SELECT REGEXP_REPLACE( 'cb', '(?<=a)b', 'e') ;
REGEXP_REPLACE( 'cb', '(?<=a)b', 'e')
cb
SELECT REGEXP_REPLACE( 'aa', '(?P<pattern>a)(?P=pattern)', 'b') ;
REGEXP_REPLACE( 'aa', '(?P<pattern>a)(?P=pattern)', 'b')
b
SELECT REGEXP_REPLACE( 'aba', '(?P<pattern>a)b(?P=pattern)', 'c') ;
REGEXP_REPLACE( 'aba', '(?P<pattern>a)b(?P=pattern)', 'c')
c
SELECT REGEXP_REPLACE( 'a', 'a(?#comment)', 'e') ;
REGEXP_REPLACE( 'a', 'a(?#comment)', 'e')
e
SELECT REGEXP_REPLACE( 'aa', 'a(?#comment)a', 'e') ;
REGEXP_REPLACE( 'aa', 'a(?#comment)a', 'e')
e
SELECT REGEXP_REPLACE( 'aba', 'a(?#b)a', 'e') ;
REGEXP_REPLACE( 'aba', 'a(?#b)a', 'e')
aba
SELECT REGEXP_REPLACE( 'ddd<ab>cc</ab>eee', '<.+?>', '*') ;
REGEXP_REPLACE( 'ddd<ab>cc</ab>eee', '<.+?>', '*')
ddd*cc*eee
SELECT REGEXP_REPLACE( 'aaa', '\\W\\W\\W', 'e') ;
REGEXP_REPLACE( 'aaa', '\\W\\W\\W', 'e')
aaa
SELECT REGEXP_REPLACE( 'aaa', '\\w\\w\\w', 'e') ;
REGEXP_REPLACE( 'aaa', '\\w\\w\\w', 'e')
e
SELECT REGEXP_REPLACE( '%', '\\W', 'e') ;
REGEXP_REPLACE( '%', '\\W', 'e')
e
SELECT REGEXP_REPLACE( '%a$', '\\W.\\W', 'e') ;
REGEXP_REPLACE( '%a$', '\\W.\\W', 'e')
e
SELECT REGEXP_REPLACE( '%a$', '\\W\\w\\W', 'e') ;
REGEXP_REPLACE( '%a$', '\\W\\w\\W', 'e')
e
SELECT REGEXP_REPLACE( '123', '\\d\\d\\d\\d\\d\\d', 'e') ;
REGEXP_REPLACE( '123', '\\d\\d\\d\\d\\d\\d', 'e')
123
SELECT REGEXP_REPLACE( '123', '\\d\\d\\d', 'e') ;
REGEXP_REPLACE( '123', '\\d\\d\\d', 'e')
e
SELECT REGEXP_REPLACE( 'aaa', '\\d\\d\\d', 'e') ;
REGEXP_REPLACE( 'aaa', '\\d\\d\\d', 'e')
aaa
SELECT REGEXP_REPLACE( '1a3', '\\d.\\d\\d.\\d', 'e') ;
REGEXP_REPLACE( '1a3', '\\d.\\d\\d.\\d', 'e')
1a3
SELECT REGEXP_REPLACE( '1a3', '\\d.\\d', 'e') ;
REGEXP_REPLACE( '1a3', '\\d.\\d', 'e')
e
SELECT REGEXP_REPLACE( 'a1b', '\\d.\\d', 'e') ;
REGEXP_REPLACE( 'a1b', '\\d.\\d', 'e')
a1b
SELECT REGEXP_REPLACE( '8', '\\D', 'e') ;
REGEXP_REPLACE( '8', '\\D', 'e')
8
SELECT REGEXP_REPLACE( 'a', '\\D', 'e') ;
REGEXP_REPLACE( 'a', '\\D', 'e')
e
SELECT REGEXP_REPLACE( '%', '\\D', 'e') ;
REGEXP_REPLACE( '%', '\\D', 'e')
e
SELECT REGEXP_REPLACE( 'a1', '\\D\\d', 'e') ;
REGEXP_REPLACE( 'a1', '\\D\\d', 'e')
e
SELECT REGEXP_REPLACE( 'a1', '\\d\\D', 'e') ;
REGEXP_REPLACE( 'a1', '\\d\\D', 'e')
a1
SELECT REGEXP_REPLACE( '\t', '\\s', 'e') ;
REGEXP_REPLACE( '\t', '\\s', 'e')
e
SELECT REGEXP_REPLACE( '\r', '\\s', 'e') ;
REGEXP_REPLACE( '\r', '\\s', 'e')
e
SELECT REGEXP_REPLACE( '\n', '\\s', 'e') ;
REGEXP_REPLACE( '\n', '\\s', 'e')
e
SELECT REGEXP_REPLACE( 'a', '\\S', 'e') ;
REGEXP_REPLACE( 'a', '\\S', 'e')
e
SELECT REGEXP_REPLACE( '1', '\\S', 'e') ;
REGEXP_REPLACE( '1', '\\S', 'e')
e
SELECT REGEXP_REPLACE( '!', '\\S', 'e') ;
REGEXP_REPLACE( '!', '\\S', 'e')
e
SELECT REGEXP_REPLACE( '.', '\\S', 'e') ;
REGEXP_REPLACE( '.', '\\S', 'e')
e
#
# Checking REGEXP_INSTR
#
SELECT REGEXP_INSTR( 'abcd', 'X') ;
REGEXP_INSTR( 'abcd', 'X')
0
SELECT REGEXP_INSTR( 'abcd', 'a') ;
REGEXP_INSTR( 'abcd', 'a')
1
SELECT REGEXP_INSTR( 'abcd', 'b') ;
REGEXP_INSTR( 'abcd', 'b')
2
SELECT REGEXP_INSTR( 'abcd', 'c') ;
REGEXP_INSTR( 'abcd', 'c')
3
SELECT REGEXP_INSTR( 'abcd', 'd') ;
REGEXP_INSTR( 'abcd', 'd')
4
SELECT REGEXP_INSTR( 'aaaa', '(?<=a)a') ;
REGEXP_INSTR( 'aaaa', '(?<=a)a')
2
SELECT REGEXP_INSTR( 'вася', 'в') ;
REGEXP_INSTR( 'вася', 'в')
1
SELECT REGEXP_INSTR( 'вася', 'а') ;
REGEXP_INSTR( 'вася', 'а')
2
SELECT REGEXP_INSTR( 'вася', 'с') ;
REGEXP_INSTR( 'вася', 'с')
3
SELECT REGEXP_INSTR( 'вася', 'я') ;
REGEXP_INSTR( 'вася', 'я')
4
SELECT REGEXP_INSTR(CONVERT( 'вася' USING koi8r), CONVERT( 'в' USING koi8r)) as exp ;
exp
1
SELECT REGEXP_INSTR(CONVERT( 'вася' USING koi8r), CONVERT( 'а' USING koi8r)) as exp ;
exp
2
SELECT REGEXP_INSTR(CONVERT( 'вася' USING koi8r), CONVERT( 'с' USING koi8r)) as exp ;
exp
3
SELECT REGEXP_INSTR(CONVERT( 'вася' USING koi8r), CONVERT( 'я' USING koi8r)) as exp ;
exp
4
#
# Checking REGEXP_SUBSTR
#
CREATE TABLE t1 AS SELECT REGEXP_SUBSTR( 'abc', 'b') ;
SHOW CREATE TABLE t1 ;
Table Create Table
t1 CREATE TABLE `t1` (
`REGEXP_SUBSTR( 'abc', 'b')` varchar( 3) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
DROP TABLE t1 ;
EXPLAIN EXTENDED SELECT REGEXP_SUBSTR( 'abc', 'b') ;
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Note 1003 select regexp_substr( 'abc', 'b') AS `REGEXP_SUBSTR( 'abc', 'b')`
SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR
CREATE TABLE t1 AS SELECT REGEXP_SUBSTR( 'abc', 'b')+ 0;
Warnings:
Warning 1292 Truncated incorrect DOUBLE value: 'b'
SHOW CREATE TABLE t1 ;
Table Create Table
t1 CREATE TABLE `t1` (
`REGEXP_SUBSTR( 'abc', 'b')+ 0` double NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
DROP TABLE t1 ;
SELECT REGEXP_SUBSTR( 'See https://mariadb.org/en/foundation/ for details', 'https?://[^/]*') as exp ;
exp
https://mariadb.org
#
# MDEV- 6027 RLIKE: "." no longer matching new line
#
SELECT 'cat and\ndog' RLIKE 'cat.*dog';
'cat and\ndog' RLIKE 'cat.*dog'
0
SELECT 'cat and\r\ndog' RLIKE 'cat.*dog';
'cat and\r\ndog' RLIKE 'cat.*dog'
0
SELECT 'a\nb' RLIKE 'a.b';
'a\nb' RLIKE 'a.b'
0
SELECT 'a\nb' RLIKE '(?-s)a.b';
'a\nb' RLIKE '(?-s)a.b'
0
SET default_regex_flags= 'DOTALL';
SELECT @@default_regex_flags ;
@@default_regex_flags
DOTALL
SELECT 'cat and\ndog' RLIKE 'cat.*dog';
'cat and\ndog' RLIKE 'cat.*dog'
1
SELECT 'cat and\r\ndog' RLIKE 'cat.*dog';
'cat and\r\ndog' RLIKE 'cat.*dog'
1
SELECT 'a\nb' RLIKE 'a.b';
'a\nb' RLIKE 'a.b'
1
SELECT 'a\nb' RLIKE '(?-s)a.b';
'a\nb' RLIKE '(?-s)a.b'
0
SET default_regex_flags=DEFAULT ;
SELECT REGEXP_SUBSTR( 'Monday Mon', '^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$') as exp;
ERROR 42000: Regex error 'two named subpatterns have the same name (PCRE2_DUPNAMES not set) at offset 30'
SET default_regex_flags='DUPNAMES';
SELECT REGEXP_SUBSTR('Monday Mon','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$') as exp;
exp
Monday Mon
SELECT REGEXP_SUBSTR('Tuesday Tue','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$') as exp;
exp
Tuesday Tue
SET default_regex_flags=DEFAULT;
SELECT 'AB' RLIKE 'A B';
'AB' RLIKE 'A B'
0
SELECT 'AB' RLIKE 'A# this is a comment\nB';
'AB' RLIKE 'A# this is a comment\nB'
0
SET default_regex_flags='EXTENDED';
SELECT 'AB' RLIKE 'A B';
'AB' RLIKE 'A B'
1
SELECT 'AB' RLIKE 'A# this is a comment\nB';
'AB' RLIKE 'A# this is a comment\nB'
1
SET default_regex_flags=DEFAULT;
SELECT 'Aq' RLIKE 'A\\q';
ERROR 42000: Regex error 'unrecognized character follows \ at offset 3'
SET default_regex_flags='EXTRA';
SELECT 'A' RLIKE 'B';
'A' RLIKE 'B'
0
Warnings:
Warning 1105 PCRE2 doesn't support the EXTRA flag. Ignored.
SET default_regex_flags=DEFAULT;
SELECT 'a\nb\nc' RLIKE '^b$';
'a\nb\nc' RLIKE '^b$'
0
SET default_regex_flags='MULTILINE';
SELECT 'a\nb\nc' RLIKE '^b$';
'a\nb\nc' RLIKE '^b$'
1
SET default_regex_flags=DEFAULT;
SELECT REGEXP_SUBSTR('abc','.+');
REGEXP_SUBSTR('abc','.+')
abc
SELECT REGEXP_REPLACE('abc','^(.*)(.*)$','\\1/\\2');
REGEXP_REPLACE('abc','^(.*)(.*)$','\\1/\\2')
abc/
SET default_regex_flags='UNGREEDY';
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
#
SELECT REGEXP_REPLACE('1 foo and bar', '(\\d+) foo and (\\d+ )?bar', '\\1 this and \\2that') as exp;
exp
1 this and that
#
# MDEV-8102 REGEXP function fails to match hex values when expression is stored as a variable
#
# Testing a warning
SET NAMES latin1;
SET @regCheck= '\\xE0\\x01';
SELECT 0xE001 REGEXP @regCheck COLLATE latin1_bin;
0xE001 REGEXP @regCheck COLLATE latin1_bin
0
Warnings:
Warning 1139 Regex error 'UTF-8 error: 1 byte missing at end'
SELECT 0xE001 REGEXP CAST(@regCheck AS CHAR);
0xE001 REGEXP CAST(@regCheck AS CHAR)
0
Warnings:
Warning 1139 Regex error 'UTF-8 error: 1 byte missing at end'
# Since 11.5 (MDEV-25829) user variables have DERIVATION_COERCIBLE
# so a user variable and a literal in the pattern gave equal results
# But since 11.6 (MDEV-35041) user variables have DERIVATION_USERVAR
# so the query with a literal is performed as binary:
SELECT 0xE001 REGEXP '\\xE0\\x01' AS c1;
c1
1
# while the query with a user variable is performed as string
# with a warning, like in 11.4
SET @regCheck= '\\xE0\\x01';
SELECT 0xE001 REGEXP @regCheck AS c2;
c2
0
Warnings:
Warning 1139 Regex error 'UTF-8 error: 1 byte missing at end'
# Testing workaround N1: This makes the pattern to be a binary string:
SET NAMES latin1;
SET @regCheck= X'E001';
SELECT 0xE001 REGEXP @regCheck;
0xE001 REGEXP @regCheck
1
# Testing workaround N2: This also makes the pattern to be a binary string, using a different syntax:
SET NAMES latin1;
SET @regCheck= _binary '\\xE0\\x01';
SELECT 0xE001 REGEXP @regCheck;
0xE001 REGEXP @regCheck
1
# Testing workaround N3: This makes derivation of the subject string stronger (IMLICIT instead of COERCIBLE)
SET NAMES latin1;
SET @regCheck= '\\xE0\\x01';
SELECT CAST(0xE001 AS BINARY) REGEXP @regCheck;
CAST(0xE001 AS BINARY) REGEXP @regCheck
1
# MDEV-12420: Testing recursion overflow
SELECT 1 FROM dual WHERE ('Alpha,Bravo,Charlie,Delta,Echo,Foxtrot,StrataCentral,Golf,Hotel,India,Juliet,Kilo,Lima,Mike,StrataL3,November,Oscar,StrataL2,Sand,P3,P4SwitchTest,Arsys,Poppa,ExtensionMgr,Arp,Quebec,Romeo,StrataApiV2,PtReyes,Sierra,SandAcl,Arrow,Artools,BridgeTest,Tango,SandT,PAlaska,Namespace,Agent,Qos,PatchPanel,ProjectReport,Ark,Gimp,Agent,SliceAgent,Arnet,Bgp,Ale,Tommy,Central,AsicPktTestLib,Hsc,SandL3,Abuild,Pca9555,Standby,ControllerDut,CalSys,SandLib,Sb820,PointV2,BfnLib,Evpn,BfnSdk,Sflow,ManagementActive,AutoTest,GatedTest,Bgp,Sand,xinetd,BfnAgentLib,bf-utils,Hello,BfnState,Eos,Artest,Qos,Scd,ThermoMgr,Uniform,EosUtils,Eb,FanController,Central,BfnL3,BfnL2,tcp_wrappers,Victor,Environment,Route,Failover,Whiskey,Xray,Gimp,BfnFixed,Strata,SoCal,XApi,Msrp,XpProfile,tcpdump,PatchPanel,ArosTest,FhTest,Arbus,XpAcl,MacConc,XpApi,telnet,QosTest,Alpha2,BfnVlan,Stp,VxlanControllerTest,MplsAgent,Bravo2,Lanz,BfnMbb,Intf,XCtrl,Unicast,SandTunnel,L3Unicast,Ipsec,MplsTest,Rsvp,EthIntf,StageMgr,Sol,MplsUtils,Nat,Ira,P4NamespaceDut,Counters,Charlie2,Aqlc,Mlag,Power,OpenFlow,Lag,RestApi,BfdTest,strongs,Sfa,CEosUtils,Adt746,MaintenanceMode,MlagDut,EosImage,IpEth,MultiProtocol,Launcher,Max3179,Snmp,Acl,IpEthTest,PhyEee,bf-syslibs,tacc,XpL2,p4-ar-switch,p4-bf-switch,LdpTest,BfnPhy,Mirroring,Phy6,Ptp' REGEXP '^((?!\b(Strata|StrataApi|StrataApiV2)\b).)*$');
SELECT REGEXP_INSTR('a_kollision', 'oll');
REGEXP_INSTR('a_kollision', 'oll')
4
SELECT REGEXP_INSTR('a_kollision', '(oll)');
REGEXP_INSTR('a_kollision', '(oll)')
4
SELECT REGEXP_INSTR('a_kollision', 'o([lm])\\1');
REGEXP_INSTR('a_kollision', 'o([lm])\\1')
4
SELECT a FROM (SELECT "aa" a) t WHERE a REGEXP '[0-9]';
a
#
# MDEV-11777 REGEXP_REPLACE converts utf8mb4 supplementary characters to '?'
#
select hex(regexp_replace(cast(x'F09F9881' as char character set 'utf8mb4'), _utf8mb4'a', _utf8mb4'b')) as Text;
Text
F09F9881
#
# End of 10.6 tests
#
| Messung V0.5 in Prozent |
|---|
| | | |
[Verzeichnis aufwärts0.18unsichere VerbindungÜbersetzung europäischer Sprachen durch Browser2026-10-08]
|
2026-10-10
|