相关疑难解决方法(0)

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

我有一张约500k行的桌子; 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"
Run Code Online (Sandbox Code Playgroud)

我知道REGEXP/RLIKE,但那些只检查是否有匹配,没有什么比赛是.

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

regex mysql mysql-udf

482
推荐指数
11
解决办法
42万
查看次数

以简单的方式包含重音字符有什么好的正则表达式?

现在我的正则表达式是这样的:

[a-zA-Z0-9]但它不包括我想要的重音字符.我也想 - ',包括在内.

regex

8
推荐指数
4
解决办法
2万
查看次数

标签 统计

regex ×2

mysql ×1

mysql-udf ×1