删除非单词之间的所有空格?

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;

【讨论】:

以上是关于删除非单词之间的所有空格?的主要内容,如果未能解决你的问题,请参考以下文章

c ++如何提取单词之间的空格(如果有的话)

PHP RegEx 删除两个单词之间的双空格

给定一个单词之间有多个空格的句子。删除多余的空格,使句子在单词之间只有一个空格[重复]

删除字符和单词之间的空格[重复]

删除PHP中两个单词之间的空格[重复]

删除字符串中的一个单词(或两个空格之间)