使用正则表达式修剪postgres中的多行条目中的文本

时间:2014-11-07 20:29:23

标签: regex postgresql trim

我有一个“逐字”列,其中每个条目包含多行。这是一个例子:

Dummy field1:Text

Tell Us More:Text to capture

Dummy field2:Text

我只想在第二行Text to capture中捕获Tell Us More:文字,并将该值放入verbatim_scrubbed列。在上面的示例中,Text to capture将是verbatim_scrubbed中的条目。

我对postgres和regexp并不是那么好,所以我希望有人可以帮助我。想到类似以下的东西:

update TABLE
set verbatim_trimmed = array_to_string(regexp_matches(verbatim,'tell us more:(.*)','gi'));

这不起作用,但我觉得类似的东西可能有效。

1 个答案:

答案 0 :(得分:0)

也许有一种直接的方法来捕获:Text to capture而没有回车\r和新行\n字符(不使用regexp_replace)。

以下是您可以做的事情:

select regexp_replace(array_to_string(regexp_matches(verbatim, '^Tell Us More:(.*)$','n'),'',''), E'[\\r\\n]', '' ) from my_table;