Postgresql删除了最后几个字符串的字符并将其粘贴到开头

时间:2016-02-01 16:42:22

标签: regex postgresql

假设我有以下字符串:

  • 为test_id
  • 任何
  • other_id
  • xyz_id
  • 例如

我需要创建一个搜索_id的正则表达式,将其从结尾删除并在开头粘贴id_,从而产生:

  • id_test
  • 任何
  • id_other
  • id_xyz
  • 例如

有没有办法在SELECT中或在最后一种情况下使用函数?

1 个答案:

答案 0 :(得分:1)

这个答案的灵感来自Wiktor Stribiżew'sthis个问题的回答。关于正则表达式的更多解释可以在那里找到。

所以这里是正则表达式,它从字符串中剪切字符并在开头粘贴它们。

正则表达式/^(?=.*(_))(?=.*(id))/gm

解释:它搜索_id并将正则表达式指针返回到开头。

<强> Regex101 Demo

这将导致字符串与id_test_id类似。尾随部分仍然完好无损,可以用这样的简单正则表达式替换。

正则表达式/_id$/gm

说明:从每行末尾搜索_id

然后由nothing替换。

<强> Regex101 Demo