Regex 在postgres中同时使用REPLACE和LIKE

Regex 在postgres中同时使用REPLACE和LIKE,regex,postgresql,pattern-matching,Regex,Postgresql,Pattern Matching,我试图替换表列中出现的所有“-”。 我还需要替换破折号后面的字符串,它是一个随机数 更具体地说,这是我的价值观之一: "ANDRIU 5-9, CHAL 152 34, SOMETHING" 我想要的是替换此部件: -9 有一个空的空间。 问题是:9可以是任何数字,而不一定是一位数字 所以我需要找到整个字符串中第一个逗号的位置。和破折号的位置,然后根据索引值替换 这可能吗?Postgres提供函数regexp\u replace(),它可以直接执行您想要的操作: select regexp_

我试图替换表列中出现的所有“-”。 我还需要替换破折号后面的字符串,它是一个随机数

更具体地说,这是我的价值观之一:

"ANDRIU 5-9, CHAL 152 34, SOMETHING"
我想要的是替换此部件:

-9
有一个空的空间。 问题是:9可以是任何数字,而不一定是一位数字

所以我需要找到整个字符串中第一个逗号的位置。和破折号的位置,然后根据索引值替换


这可能吗?

Postgres提供函数
regexp\u replace()
,它可以直接执行您想要的操作:

select regexp_replace(col, '-[0-9]+', ' ')

魔术出于学习目的:“+”符号在哪里有帮助?您在第一个逗号中定义在哪里停止?@dkar。文档解释了正则表达式。但是,[0-9]匹配一个数字。
+
匹配模式的一个或多个匹配项(因此是多个数字)。因此,模式在任何非数字处停止。