2016-04-10 14 views
2

Hashtag'leri bir dizeden çekmek için Postgres regexp_matches işlevini kullanmaya çalışıyorum ... Aşağıdaki örnek yalnızca bir eşleşme döndürüyor - her iki hashtag'ı nasıl ayırım?Postgres ile çoklu eşleşmeler regexp_matches

regexp_matches("Hello #world #planet", '#([A-Za-z0-9]+)') 

Alkış, Andrei

+0

regexp_matches ("Merhaba #world #planet", '#' olarak g' bayrağı ([A 'deneyin -Za-z0-9] +) ',' g ') ' – rock321987

+0

@ rock321987 öneri için teşekkürler. Bunu denedim ama hiçbir etkisi yoktu. –

cevap

2

Sen ' değil " ile birebir dize zarfın içine koymalıdır. yorumunda önerildiği üzere 'g' ekleme yardımcı olacaktır:

SELECT regexp_matches('Hello #world #planet', '#([A-Za-z0-9]+)', 'g') 

SqlFiddleDemo

╔════════════════╗ 
║ regexp_matches ║ 
╠════════════════╣ 
║ world   ║ 
║ planet   ║ 
╚════════════════╝ 
+1

Yardımlarınız için teşekkürler. En büyük sorunum, WHERE yan tümcesinde regexp_matches kullanıyordum ki beklenen sonuçları vermedi. –