Postgresql 如何将固定的三个字母代码放在数字之前?

Postgresql 如何将固定的三个字母代码放在数字之前?,postgresql,replace,regexp-replace,Postgresql,Replace,Regexp Replace,我对正则表达式很陌生,所以在替换字符串中的数字时会感到困惑,其中几个id号(从1到5位,到现在为止)用逗号分隔,并在花括号之间闭合。 我需要在每个写入的数字之前放置一个固定的代码,如p1\uu,以便在将来区分不同类型的对象ID。 我有一个postgres数据库,其中有一列文本格式的“维护”,可以包含如下值(单元格不能为null或空): 我需要替换每个数字“p1_”前面的值,如下所示: +------------------------+ | maintainance | +-

我对正则表达式很陌生,所以在替换字符串中的数字时会感到困惑,其中几个id号(从1到5位,到现在为止)用逗号分隔,并在花括号之间闭合。 我需要在每个写入的数字之前放置一个固定的代码,如p1\uu,以便在将来区分不同类型的对象ID。 我有一个postgres数据库,其中有一列文本格式的“维护”,可以包含如下值(单元格不能为null或空):

我需要替换每个数字“p1_”前面的值,如下所示:

+------------------------+
| maintainance           |
+------------------------+
| {p1_12541,p1_2,p1_4}   |
+------------------------+
| {p1_12,p1_131,p1_9999} |
+------------------------+
| {p1_54}                |
+------------------------+
| {p1_1}                 |
+------------------------+
| {p1_12500,p1_65}       |
+------------------------+
您能建议我如何使用正则表达式编写replace命令吗?
提前感谢

不,劳伦兹,用你写的代码,“p1_u1”在现有数字之前不是puf,它们完全替代它们,即{p_1&,p_1&,p_1&}对不起,示例已修复。该列是什么数据类型?显示似乎表明这些是阵列。
regexp_replace(col, '[0-9]+', 'p_1\&', 'g') 
regexp_replace(col, '[0-9]+', 'p_1\&', 'g')