我想编写一个函数来删除孤立字母之间的空格,就像首字母缩略词一样。
例如,如果我有:
'I B M Computers' i need to have in return 'IBM Computers'
' I B M ' => 'IBM'
'Computers A B' => 'Computers AB'
'Computers A BC' => 'Computers A BC' (nothing changes)
'Computers A B CD' => 'Computers AB CD'
'Computers A B C D' => 'Computers ABCD'
我找不到正确的方法,有人可以帮我吗?
谢谢。
最佳答案
这篇文章中描述的正则表达式应该适合你(稍微调整一下 MariaDB 的正则表达式)。来自@Alan Moore 的那篇文章:
“在我看来,您想删除 (1) 前面不是一个字母的字母,以及 (2) 后面是一个本身不是字母的字母。这些条件可以精确地表示为嵌套的环视”。请相信他。
https://stackoverflow.com/a/4233386/2543416
因此,假设您的列名为“DESC”,您的答案将是:
SELECT TRIM(REGEXP_REPLACE(DESC, '(?<=(?<![[:alpha:]])[[:alpha:]]) +(?=[[:alpha:]](?![[:alpha:]]))','')) AS fixed_desc
FROM table;
Test the regex here
关于sql - 如何在 SQL 中删除首字母缩略词中的空格?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44327357/