0

我有一个函数,我想在两个字符串之间获取一个字符串,其中第一个是“开始”,第二个是换行符。

我的意思是:从“开始 blablabla \n”我只想要“blablabla”。

我试过这个,但它不起作用:

select substring(test from 'Start(.+)\n') into vtest; 

如何识别换行符?谢谢!

4

2 回答 2

0

$符号与字符串结尾匹配:

select substring('Start123' from 'Start(.+)$'); 
 substring 
-----------
 123
于 2013-05-02T14:00:44.303 回答
0

它需要双重转义:

test=> select substring('foo
bar' from E'\\A(.*)\\r?\\n');
 substring 
-----------
 foo
(1 row)

替代版本:

select substring('foo
bar' from E'\\A.*(?=\\r?\\n)');
于 2013-05-02T14:40:16.237 回答