2016-08-23 91 views
1

我試圖在PostgreSQL中使用正則表達式找到一些非常特定的多字節字符。我知道我可以選擇做長CASE WHEN,但我決定檢查是否有不同的方法來找到這些。匹配PGSQL正則表達式中的多個十六進制字符

我現在的正則表達式看起來像這樣E'\xf0\x9f\x98\x83' 這工作得很好,但我需要找到所有從\xf0\x9f\x98\x80\xf0\x9f\x98\x99

在JS中,我只能寫出類似\xf0\x9f\x98[\x80-\x89]的東西,但無論出於何種原因,這會在PGSQL中返回錯誤。有沒有這樣的捷徑,還是我註定要寫20 CASE WHEN -s?

+0

嘗試用'[...]'中的文字符號代替'\ x80'和'\ x89'。 –

+0

@WiktorStribiżew謝謝,這個想法看起來不錯,但我不熟悉多字節字符。我該怎麼做?你能解釋一下嗎? – WolfyD

+0

'\ x80'和'\ x89'是多字節字符嗎?不知道,我只是想猜測。 –

回答

1

我意識到我的錯誤。 PGSQL錯誤是由於我正在查找4字節字符而引起的,我只是想要弄亂最後一個字節。我意識到我必須這樣寫:E'[\xf0\x9f\x98\x80-\xf0\x9f\x98\x90]'

相關問題