数据库:MySQL8|Oracle|正则匹配|替换

描述:在日常开发或者运维工作中涉及到对数据库数据的清理,普通的子串替换显然力不从心,掌握正则替换和查询尤为重要。
相关问题:数据库字段数据清理|否定正则查询|正则中文字符集
例题

①:正则替换处理:王老6【00】(22)\【00】(22)王老6\【00】王老(22)6

select regexp_replace(name,"\【[0-9]+\】+|\([0-9]+\)+|[0-9]+|\s+",'') 
FROM #{tablename};

分析:特殊字符通过’‘转义,数字通过字符集匹配[],1…*匹配用’+’,空格匹配’\s’

②:正则查询:匹配中文

-- ^在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合
SELECT * from #{tablename}
WHERE regexp_like(name,'^[\x00-\xff]');

③:否定正则查询

SELECT * from #{tablename}
WHERE regexp_like(name,'^[\x00-\xff]')!=1;

④:删除以5000开头数字串

DELETE FROM #{tablename} 
WHERE regexp_like(id,'^5000[0-9]+');

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