<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Wycięcie cżęści testu]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=613</link>
		<description><![CDATA[Najświeższe odpowiedzi w Wycięcie cżęści testu.]]></description>
		<lastBuildDate>Sun, 24 Jul 2011 09:45:26 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Wycięcie cżęści testu]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2610#p2610</link>
			<description><![CDATA[Cały zbiór [007], [014] itd. możesz przedstawić/zobrazować jako wyrażenie regularne np.:

[code]\[\d{3}\][/code]

Idąc dalej dostępna jest funkcja regexp_replace, którą możliwe jest wycięcie fragmentu napisu w oparciu o taki wzorzec.:

[code]SELECT regexp_replace('przelew [100]', $$\[\d{3}\]$$, '[]')[/code]

W efekcie za każdym razem otrzymasz 'przelew []'. Jeżeli cyfr może być mniej/więcej jak trzy, to zawsze możesz użyć \d+, czyli po prostu jedna lub więcej cyfr.

Jeżeli zamiast wycinać, chcesz wyciągnąć te liczby, to można by użyć substring(string from pattern):

[code]SELECT substring('przelew [015]' from  $$\d{3}$$)
 substring
-----------
 015
(1 row)[/code]]]></description>
			<author><![CDATA[dummy@example.com (gszpetkowski)]]></author>
			<pubDate>Sun, 24 Jul 2011 09:45:26 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2610#p2610</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Wycięcie cżęści testu]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2609#p2609</link>
			<description><![CDATA[Mój błąd w pytaniu w pierwszym poście.. Owszem to zadziała. Tylko jest jeden problem nie zawsze tam będą zera. To może wyglądać np. tak przelew [007], przelew [014], przelew [030]. I chciałbym wyciągnąć to co jest w kwadratowym nawiasie. Tylko nie wiem jak to ruszyć.

Pozdrawiam]]></description>
			<author><![CDATA[dummy@example.com (hifek)]]></author>
			<pubDate>Sun, 24 Jul 2011 08:37:58 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2609#p2609</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Wycięcie cżęści testu]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2605#p2605</link>
			<description><![CDATA[Nie jestem pewien, czy dobrze rozumiem, ale przykładowo mógłbyś użyć funkcji [url=http://www.postgresql.org/docs/current/static/functions-string.html]replace(string text, from text, to text)[/url]:

[code]SELECT replace('przelew [000]', '000', '');
  replace   
------------
 przelew []
(1 row)[/code]

Generalnie Postgres posiada wiele wbudowanych funkcji i operatorów do pracy z napisami, do cięższych przypadków można używać [url=http://www.postgresql.org/docs/9.0/static/functions-matching.html]wyrażeń regularnych[/url], a to tych najcięższych zawsze można podpiąć język proceduralny jak [url=http://www.postgresql.org/docs/current/static/plperl.html]PL/Perl[/url].]]></description>
			<author><![CDATA[dummy@example.com (gszpetkowski)]]></author>
			<pubDate>Sat, 23 Jul 2011 10:07:56 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2605#p2605</guid>
		</item>
		<item>
			<title><![CDATA[Wycięcie cżęści testu]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2604#p2604</link>
			<description><![CDATA[Witam

Poradźcie w jaki sposób z wyrażenia 'przelew [000]' wyciąć te trzy zera?

Pozdrawiam]]></description>
			<author><![CDATA[dummy@example.com (hifek)]]></author>
			<pubDate>Fri, 22 Jul 2011 21:24:11 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2604#p2604</guid>
		</item>
	</channel>
</rss>
