如何在Postgresql中提取星号之间的文本?

时间:2017-09-26 14:36:23

标签: regex postgresql substring postgresql-9.5

如何在星号之间提取文字?

SELECT substring('QUITAR1 *W01 - 123456/9*  QUITAR2 ' from '%#"*_*#"_' for '#')

我需要按照以下方式检索文字:W01 - 123456/9

Postgresql 9.5 .-

1 个答案:

答案 0 :(得分:1)

如果您想使用substring with regular,请将星号括在方括号中:

t=# SELECT substring('QUITAR1 *W01 - 123456/9*  QUITAR2 ' from '%#"[*]%[*]#"%' for '#');
    substring
------------------
 *W01 - 123456/9*
(1 row)

所以得到你的想法:

t=# SELECT replace(substring('QUITAR1 *W01 - 123456/9*  QUITAR2 ' from '%#"[*]%[*]#"%' for '#'),'*','');
    replace
----------------
 W01 - 123456/9
(1 row)

我使用替换因为在文本中使用asterix可能会制作掩码