Luf*_*ude 2 sql string postgresql
所以我有一列具有以下值,有时在开头有一个数字
turtle boat
10 banana split
lord Thanos
23 macbook
Run Code Online (Sandbox Code Playgroud)
如何查询去除数字和数字前面的空格,而不是字符串中间的空格?
预期输出:
turtle boat
banana split
lord Thanos
macbook
Run Code Online (Sandbox Code Playgroud)
我从这里的另一个问题中尝试的查询:
select regexp_replace(mycolumn, '[^[:alpha:]]', '', 'g')
Run Code Online (Sandbox Code Playgroud)
此查询的问题在于它完全删除了所有空格
您可以排除除字母和空格之外的所有字符。此外,用于trim()删除前导或尾随空格:
with my_data(mycolumn) as (
values
('turtle boat'),
('10 banana split'),
('lord Thanos'),
('23 macbook')
)
select trim(regexp_replace(mycolumn, '[^[:alpha:]\s]', '', 'g'))
from my_data
btrim
--------------
turtle boat
banana split
lord Thanos
macbook
(4 rows)
Run Code Online (Sandbox Code Playgroud)
这将删除前导数字和空格:
\n\nselect regexp_replace(\'10 banana split\', \'^\\d+ \', \'\');\n\n/^\\d+[ ]/\n ^ asserts position at start of a line\n \\d+ matches a digit (equal to [0-9])\n + Quantifier \xe2\x80\x94 Matches between one and unlimited times, as many times as possible, giving back as needed (greedy)\n [ ] matches the character \' \' literally (case sensitive)\nRun Code Online (Sandbox Code Playgroud)\n\n用于“global”的修饰符g就是为什么在正则表达式中所有空格都被删除,与非字母字符匹配。
在这里摆弄
\n| 归档时间: |
|
| 查看次数: |
3318 次 |
| 最近记录: |