在第一个 space 之后到达字符串末尾
get till end of string after first space
我需要按如下方式拆分字符串,当我尝试使用 split_part 时没有成功
select split_part('8 HAMPSHIRE RD',' ',2)
预期产出:汉普郡路
select regexp_replace('8 HAMPSHIRE RD', '.*?\s', '');
regexp_replace
----------------
HAMPSHIRE RD
(1 row)
使用字符串操作函数的替代解决方案:
with my_table(str) as (
values ('8 HAMPSHIRE RD')
)
select right(str, -strpos(str, ' '))
from my_table;
如果您想跳过第一个单词,如果它只包含数字,您应该使用 \d
(数字)而不是 .
(任何字符):
select regexp_replace('8 HAMPSHIRE RD', '\d*?\s', '');
没有正则表达式的更便宜的解决方案:
SELECT substring (
'8 HAMPSHIRE RD'
FROM position(' ' IN '8 HAMPSHIRE RD') + 1
);
我需要按如下方式拆分字符串,当我尝试使用 split_part 时没有成功
select split_part('8 HAMPSHIRE RD',' ',2)
预期产出:汉普郡路
select regexp_replace('8 HAMPSHIRE RD', '.*?\s', '');
regexp_replace
----------------
HAMPSHIRE RD
(1 row)
使用字符串操作函数的替代解决方案:
with my_table(str) as (
values ('8 HAMPSHIRE RD')
)
select right(str, -strpos(str, ' '))
from my_table;
如果您想跳过第一个单词,如果它只包含数字,您应该使用 \d
(数字)而不是 .
(任何字符):
select regexp_replace('8 HAMPSHIRE RD', '\d*?\s', '');
没有正则表达式的更便宜的解决方案:
SELECT substring (
'8 HAMPSHIRE RD'
FROM position(' ' IN '8 HAMPSHIRE RD') + 1
);