postgres正则表达式子串转义字符

时间:2016-06-04 16:24:14

标签: regex postgresql

数据包含一系列格式的名称:

ABC123456 XYZ987654 DE-234567

查询

select distinct(substring(field, '([A-Z]{1,3})')) pref, count(*) tot from table;

标识带有字符的条目。 问题是:什么是逃避角色拉动' - '字符和字母字符。 ' - '字符用于选择字符序列[A-Z]。如何扩展该选择序列以包括' - '字符。

1 个答案:

答案 0 :(得分:1)

  

' - '字符用于选择字符序列[A-Z]

短划线-仅在位于其他角色中间时被解释为范围。如果你把它放在一个字符类的开头或结尾,它就变成了一个普通字符:

select distinct(substring(field, '([A-Z-]{1,3})')) pref, count(*) tot from  table;
--                                     ^

[-A-Z]也可以。