psql搜索特定单词

时间:2015-09-02 02:34:42

标签: sql regex psql

我正在寻找以下表达,但我没有得到它

我尝试了以下

SELECT regexp_replace('KR 733 asd 12 12 NO SUR', '([^0-9]+)', ' ', 'g') || regexp_replace('KR 733 asd 12 12 NO SUR', '[^(SUR|ESTE)]', ' ', 'g')

结果是

" 733 12 12  R                  SUR"

但我需要的是只有三个数字和单词(SUR | ESTE)

" 733 12 12 SUR"

另一个案例

“CL 23 AS 343A 34 ESTE”=> “23 343 34 ESTE”

“CL 23 AS 343A 34 50 30 ESTE”=> “23 343 34 ESTE”

1 个答案:

答案 0 :(得分:0)

尝试使用此正则表达式

SELECT regexp_replace('KR 733 asd 12 12 NO SUR', '([a-zA-Z]+)[^(?:\d|SUR|ESTE)]', ' ', 'g')

但是它会在字符串中显示任何数字,最后是SUR或ESTE。