postgresql : regexp_substr - 在出现的分隔符之间获取子字符串

问题描述

我有这些字符串:

[{"Name":"id","Value":"Window_Ex_kebklipecbcegiocpa_widget_open"
[{"Name":"id","Value":"Window_Ex_kebklipecbcegiocpa_widget_close"
[{"Name":"id","Value":"Window_Ex_kebklipecbcegiocpa_widget_mid_value"

我试图只提取第三个 _ 之后的部分,直到字符串的结尾(总是以 " 结尾)

widget_open
widget_close
widget_mid_value

我正在使用 postgresql,并想使用 regexp_substr 语法来提取它。 谢谢!

解决方法

regexp_replace(data::text,'^([^_]+_){3}','')

你可以试试

select regexp_replace(data::text,'')
  from (
      select 'one_two_three_four  s'::text as data 
      union select 'a_bb_ccc_dddd_eeee_ffff'
  ) data

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...