删除非单词之间的所有空格?
Posted
技术标签:
【中文标题】删除非单词之间的所有空格?【英文标题】:Remove all whitespaces between non words? 【发布时间】:2018-05-14 23:02:53 【问题描述】:如何删除列中非单词之间的所有空格? 我有一列包含这样的值:
"This Is My - Value"
"This Is My- Value"
"This Is My/ Value"
"This Is My- Value (Other -Value)"
如何删除非单词之间的所有空格,如下所示:
"This Is My-Value"
"This Is My-Value"
"This Is My/Value"
"This Is My-Value(Other-Value)"
试过了,还是不行:
SELECT REGEXP_REPLACE(I,"\s*([^a-zA-Z\d\s:])\s*","\\1") FROM registros;
【问题讨论】:
引号之间的以下字符“()-/\” 这是mysql还是oracle?我不相信 mysql 有 REGEXP_REPLACE 功能。 MySQL 正则表达式没有像\s
和\d
这样的转义序列。
查看dev.mysql.com/doc/refman/5.7/en/regexp.html 获取 MySQL 中正则表达式语法的文档。
@clinomaniac,MariaDB 实现了一个 REGEXP_REPLACE() 函数,或多或少类似于 Oracle 和 PostgreSQL 中的函数。 MySQL 没有这个功能。
【参考方案1】:
知道了:
SELECT REGEXP_REPLACE(I,"\[[:blank:]]*([-/()])\[[:blank:]]*","\\1") FROM registros;
【讨论】:
以上是关于删除非单词之间的所有空格?的主要内容,如果未能解决你的问题,请参考以下文章