在postgres SQL中从字符串中提取单词

时间:2016-01-13 21:06:35

标签: postgresql

我是'postgres'的新手,并尝试从字符串中提取值。我正在尝试使用protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String dbcont = getCont(); tone = (TextView)findViewById(R.id.textView1); tone.setText("usean :-)"+dbcont); } public String getCont() { String mit = null; try { URL oracle = new URL("http://localhost/grace/conn.php"); BufferedReader in = new BufferedReader( new InputStreamReader(oracle.openStream())); StringBuilder sb = new StringBuilder(); String inputLine; while ((inputLine = in.readLine()) != null) { sb.append(inputLine); } mit = sb.toString(); System.out.println(mit); } catch(Exception e){ e.printStackTrace(); } return mit; } regexp_substr的组合来实现预期的结果。

更新示例:我有一个字符串replace(遵循模式"When Harry met Sally")。我想提取单词When X met Y,即X。

我正在尝试语法: Harry但收到错误消息:regexp_substr(REPLACE('When Harry met Sally', 'When ', ''),' met [^.]*');

有人可以帮忙吗?我想这对于一些专业人士来说这是孩子的游戏。

1 个答案:

答案 0 :(得分:0)

在使用某些功能之前,请检查documentation有关其语法的信息......或者是否存在。

Postgresql中不存在

regexp_substr 。你想做什么 ?

  

我想提取哈利这个词。

按哪个标准?第二个字? X在"当X遇到Y"? 如果没有更多信息,就无法回答。

postgres=# select regexp_replace('When Harry met Sally', 
         'When (.*) met.*',
         '\1' );
 regexp_replace
----------------
 Harry
(1 row)

这只是一个例子。例如,如果您想要支持其他类型的空白区域,或者区分大小写,或者在'当'或者......之前接受某些内容,则可能是错误的。