我有一个fallowing字符串' this is my string '
是否可以从开头和结尾删除所有空格,并且在单词之间只有一个空格。
选择我用过的所有空格:
SELECT regexp_replace(' this is my string ', '[ ]{2,}', '', 'g');
问题在于单词之间的两个空格。
答案 0 :(得分:2)
使用锚点。
SELECT regexp_replace(' this is my string ', '^ +| +$|( ) +', '\1', 'g');
^ +
匹配所有前导的一个或多个空格。|
或<space>+$
匹配所有尾随空格。|
或(即来自重新唤醒的字符串)( ) +
捕获第一个空格并匹配以下所有空格。答案 1 :(得分:2)
SELECT
trim(both ' ' from regexp_replace(' this is my string ', ' +', ' ', 'g'));
答案 2 :(得分:2)
您可以使用:
SELECT regexp_replace(' this is my string ', '^ +| +$| +(?= )', '', 'g');
这将删除以下所有空格:
<强>解释强>
^ +| +$
匹配字符串开头或结尾处的空格+(?= )
是一个积极的向前看,只有在至少一个空格后才会匹配1个或多个空格