wil*_*map 17 regex string postgresql whitespace replace
我需要清理一个字符串列,其中包含空格和制表符,在字符串的开头或结尾处(这是一团糟!).我想在每个单词之间只留一个空格.假设我们有以下字符串,其中包含所有可能的情况:
mystring = ' one two three four '
Run Code Online (Sandbox Code Playgroud)
这是我的方式:
WITH
t1 AS (SELECT' one two three four '::TEXT AS mystring),
t2 AS (SELECT TRIM(both ' ' from mystring) AS mystring FROM t1),
t3 AS (SELECT TRIM(both '\t' from mystring) AS mystring FROM t2)
SELECT regexp_replace(mystring, '(( ){2,}|\t+)', ' ', 'g') FROM t3 ;
Run Code Online (Sandbox Code Playgroud)
我最终得到以下字符串,看起来不错,但我仍然有一个尾随空格...
'one two three four '
Run Code Online (Sandbox Code Playgroud)
有没有想过以更简单的方式做到这一点并解决最后一个问题?
非常感谢 !
小智 35
SELECT trim(regexp_replace(col_name, '\s+', ' ', 'g')) as col_name FROM table_name;
Run Code Online (Sandbox Code Playgroud)
或者在更新的情况下:
UPDATE table_name SET col_name = trim(regexp_replace(col_name, '\s+', ' ', 'g'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17417 次 |
| 最近记录: |