注:此函数为 MySQL8.0 版本新增,低于8.0版本没有此函数。
regexp_replace(expr, pat, repl[, pos[, occurrence[, match_type]]])
用法
将字符串expr与pat指定的正则表达式匹配的匹配项,替换为字符串repl,并返回结果字符串。如果expr、pat或repl为NULL,则返回值为NULL。
参数
- expr:要替换的原始字符串,或者数据库表指定的列。
- pat:要匹配的正则表达式,pat为空串时抛异常,Illegal argument to a regular expression。
- repl:将匹配的pat替换成的字符串。
- pos:expr开始搜索的位置。如果省略,则默认值为 1。
- occurrence:要替换哪个匹配项。如果省略,则默认值为 0(表示“替换所有匹配项”)。
- match_type:指定如何执行匹配的任何或所有以下字符。(i:不区分大小写的匹配 默认。c:区分大小写的匹配。m: 多行模式。n:. 字符匹配行终止符。默认值是 .匹配在行尾停止。u: 仅 Unix 的行尾。只有换行符会被 、 和 match 运算符识别为以行结尾.的^行 $。)
用法
示例:基本用法,替换全部数字变成#。
select regexp_replace('1abc2', '[0-9]', '#');输出:

示例:pos用法,从字符串第二位开始搜索,替换全部数字变成#。
select regexp_replace('12abc', '[0-9]', '#', 2);输出:

版权声明:本文为minshiwang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。