Postgres regexp_replace,删除" st"," nd"," rd"

时间:2016-03-06 11:56:15

标签: postgresql regexp-replace

我需要删除上面的后缀并保留一个数字和其他文字。

字符串例如:

Start from 1st, 2nd, 3rd

应该是

Start from 1, 2, 3

3 个答案:

答案 0 :(得分:2)

对三个可能的值使用或条件:

'gi'

您可能还希望使用 'g'而不是regexp_replace(the_column, '([0-9])((st)|(nd)|(rd))', '\1', 'g') 来使用敏感替换中使用

如果这些字符串可以自己显示(即不跟随数字),则需要扩展正则表达式:

{{1}}

SQLFiddle示例:http://sqlfiddle.com/#!15/9eecb7db59d16c80417c72d1e1f4fbf1/6533

答案 1 :(得分:0)

文档说:

regexp_replace(source, pattern, replacement [, flags ])

因此,对于您的情况,这应该可以解决问题:

regexp_replace(YOUR_SOURCE, '(\d*+(\w{2}))', '', 'g')

答案 2 :(得分:0)

匹配5 和11

regexp_replace(the_column, '([\d+])(\w{2})', '\1', 'g')