如何在MySQL中执行正则表达式替换?-问答-阿里云开发者社区-阿里云

开发者社区> 保持可爱mmm> 正文

如何在MySQL中执行正则表达式替换?

2020-05-08 10:28:09 142 1

我有一张约有50万行的表格;varchar(255)UTF8列filename包含一个文件名;

我正在尝试从文件名中删除各种奇怪的字符-以为我会使用字符类: [^a-zA-Z0-9()_ .-]

现在,MySQL中是否有一个函数可以让您通过正则表达式进行替换?我正在寻找与REPLACE()函数类似的功能-简化示例如下:

SELECT REPLACE('stackowerflow', 'ower', 'over');

Output: "stackoverflow"

/* does something like this exist? */ SELECT X_REG_REPLACE('Stackoverflow','/[A-Zf]/','-');

Output: "-tackover-low" 我知道REGEXP / RLIKE,但那些只检查是否有匹配,没有什么比赛是。

(我可以做一个“ SELECT pkey_id,filename FROM foo WHERE filename RLIKE '[^a-zA-Z0-9()_ .-]'”从PHP脚本,做了preg_replace,然后“ UPDATE foo ... WHERE pkey_id=...”,但看起来像一个不得已的缓慢和丑陋的黑客)

取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-05-08 10:28:44

    使用MySQL 8.0+,您可以使用本机REGEXP_REPLACE功能。

    12.5.2正则表达式:

    REGEXP_REPLACE(expr, pat, repl[, pos[, occurrence[, match_type]]])

    将字符串expr中与模式pat指定的正则表达式匹配的匹配项替换为替换字符串repl,并返回结果字符串。如果expr,pat或repl为NULL,则返回值为NULL。

    和正则表达式支持:

    此前,MySQL的使用的亨利斯宾塞正则表达式库来支持正则表达式运算符(REGEXP,RLIKE)。

    使用Unicode国际组件(ICU)重新实现了对正则表达式的支持,该组件提供了完整的Unicode支持并且是多字节安全的。该REGEXP_LIKE()函数以REGEXP和RLIKE运算符的方式执行正则表达式匹配,它们现在是该函数的同义词。此外, REGEXP_INSTR(), REGEXP_REPLACE(),和 REGEXP_SUBSTR() 功能可用于找到匹配的位置,并执行串分别取代和提取。

    SELECT REGEXP_REPLACE('Stackoverflow','[A-Zf]','-',1,0,'c'); -- Output: -tackover-low 来源:stack overflow

    0 0
相关问答

17

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

阿里ACE 彭飞 2019-07-10 09:36:10 966584浏览量 回答数 17

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 222981浏览量 回答数 162

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157074浏览量 回答数 145

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 333859浏览量 回答数 8

33

回答

Win Server 2003-2016 加密勒索事件必打补丁合集

妙正灰 2017-05-15 10:44:38 277518浏览量 回答数 33

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256863浏览量 回答数 38

294

回答

Linux Bash严重漏洞修复紧急通知(已全部给出最终修复方案)

qilu 2014-09-25 13:26:50 431608浏览量 回答数 294

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302592浏览量 回答数 249

2

回答

区域选择帮助

fanyue88888 2012-12-07 15:54:30 204005浏览量 回答数 2

13

回答

游戏云精彩帖汇总

nono20011908 2014-08-22 11:00:12 203632浏览量 回答数 13
66
文章
12595
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载