関数があり、最初の文字列が「開始」で、2 番目の文字列が改行文字である 2 つの文字列の間の文字列を取得したいと考えています。
つまり、「Start blablabla \n」からは「blablabla」のみが必要です。
私はこれを試しましたが、うまくいきません:
select substring(test from 'Start(.+)\n') into vtest;
どうすれば改行文字を識別できますか?? ありがとう!
関数があり、最初の文字列が「開始」で、2 番目の文字列が改行文字である 2 つの文字列の間の文字列を取得したいと考えています。
つまり、「Start blablabla \n」からは「blablabla」のみが必要です。
私はこれを試しましたが、うまくいきません:
select substring(test from 'Start(.+)\n') into vtest;
どうすれば改行文字を識別できますか?? ありがとう!
ダブルエスケープする必要があります。
test=> select substring('foo
bar' from E'\\A(.*)\\r?\\n');
substring
-----------
foo
(1 row)
代替バージョン:
select substring('foo
bar' from E'\\A.*(?=\\r?\\n)');
$
記号は文字列の末尾に一致します。
select substring('Start123' from 'Start(.+)$');
substring
-----------
123