我想從我的Redshift表中的列中拉出特殊字符(標點符號和表情符號)。我已經在這個動態測試儀被檢驗出正則表達式的功能在這裏:爲Redshift重複正則表達式
在動態測試儀這一個適用於拉非空格字符:[^a-zA-Z\s]
然而,在紅移它仍然拉空間,只拉第一個特殊字符,不管是問號還是表情符號。
根據紅移文檔,它支持的REGEXP_SUBSTR函數:http://docs.aws.amazon.com/redshift/latest/dg/REGEXP_SUBSTR.html
我在紅移以下查詢:
select
*
, regexp_substr(device_contact_name,'[^\sa-zA-Z]') as special_characters
from table
例如,如果現場有「牛!」它會返回「!」但如果該領域有「丹尼爾!」它會返回「」
如果該字段有「丹尼爾!!」我想要結果返回「!!」
關於如何從結果中正確消除空間並返回所有特殊字符的想法?
在此先感謝!
它不應該返回一個空間,因爲不是由正則表達式允許的。要一次獲得超過1個,量化類'[^ \ sa-zA-Z] +' – sln
請記住,在_negated_字符類中,所有項目分別爲非項目,並且每個否定項目都是_AND_Ed。 – sln
謝謝大家! NetMage的解決方案適用於我遇到的問題:'[^ \\ sa-zA-Z] +' –