0

関数があり、最初の文字列が「開始」で、2 番目の文字列が改行文字である 2 つの文字列の間の文字列を取得したいと考えています。

つまり、「Start blablabla \n」からは「blablabla」のみが必要です。

私はこれを試しましたが、うまくいきません:

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

どうすれば改行文字を識別できますか?? ありがとう!

4

2 に答える 2

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 に答える
0

$記号は文字列の末尾に一致します。

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