拆分postgres中浮点数和字母的列



如何分割列名称在Postgres 12中使用正则表达式。我希望输出如下所示:

tbody> <<tr>
name 输出 可选输出
abcd{abcd}
abcd1234567efg{abcd, 1234567, efg}
abcd1234567.89efg{abcd, 1234567.89, efg}
abcd12efg34567hij{abcd, 12, efg, 34567, hij}{abcd, 12efg, 34567, hij}
abcd12efg34567.89, hij{abcd, 12efg, 34567.89, hij}{abcd, 12efg, 34567.89, hij}

您可以尝试匹配正则表达式模式d+(?:.d+)?|D+,它将匹配数字或非数字字符组:

SELECT REGEXP_MATCHES(name, 'd+(?:.d+)?|D+', 'g') AS s
FROM yourTable;

对于abcd12efg34567.89hij的输入,将匹配以下元素:

s
{abcd}
{12}
{efg}
{34567.89}
{hij}

最新更新