PostgreSQL Regex:直到dot

时间:2017-09-07 14:22:51

标签: sql regex postgresql

我得到了一个带有点分隔字符串条目的表,例如。

  1. “school.parent.child-1.petA”
  2. “school.parent.child-1.petB”
  3. “school.parent.child-1.petB.name”
  4. “school.parent.child-1”
  5. “school.parent.child-2”
  6. 现在我想使用“school.parent”信息获取条目4和5但不是1,2或3

    (“WHERE str~ *'...'”是必要的)

    我尝试了什么:

    SELECT * FROM table WHERE str ~* 'school.parent.\w*$'
    SELECT * FROM table WHERE str ~* 'school.parent.*\.'
    SELECT * FROM table WHERE str ~* 'school.parent.+?(?=\.)'
    

    最近的是'school.parent。+?(?=。)'给了我1,2,3但不是4,5(反向)

    条目只是示例...可以是任何“string.string.string ...”

1 个答案:

答案 0 :(得分:0)

使用like

这是一个非常简单的方法
where str like 'school.parent.%' and
      str not like 'school.parent.%.%'

如果你想要一个正则表达式:

where str ~ '^school.parent.[^.]+$'

根据您的示例数据,不区分大小写并不是必需的。