我正在使用Hive(Hadoop)編寫類似SQL的語句。正則表達式刪除字符串中的單詞之間的空格
我需要刪除字段中的空格。例如,郵政編碼可能是XX00 0XX,我想之前0XX
刪除空間到目前爲止,我有這樣的正則表達式:
REGEXP_REPLACE(postcode, '[[:space:]]*', '')
但它似乎並沒有工作。任何人都可以建議嗎?
我正在使用Hive(Hadoop)編寫類似SQL的語句。正則表達式刪除字符串中的單詞之間的空格
我需要刪除字段中的空格。例如,郵政編碼可能是XX00 0XX,我想之前0XX
刪除空間到目前爲止,我有這樣的正則表達式:
REGEXP_REPLACE(postcode, '[[:space:]]*', '')
但它似乎並沒有工作。任何人都可以建議嗎?
只是做一個簡單的(非正則表達式)替換會有什麼問題嗎?試試這個:
REPLACE(postcode, ' ', '')
如果您version of Hive不支持REPLACE()
,那麼你可以使用:
REGEXP_REPLACE(postcode, '\\s+', '')
你嘗試 '[[:空白:]] *' 護理,因爲這將捕獲標籤也是如此。
錯誤的正則表達式方言 –
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
翻譯
select translate('XX00 0XX',' ','')
REGEXP_REPLACE
select regexp_replace('XX00 0XX',' ','');
select regexp_replace('XX00 0XX','\\s','');
select regexp_replace('XX00 0XX','\\p{Blank}','');
select regexp_replace('XX00 0XX','\\p{Space}','');
select regexp_replace('XX00 0XX','\\p{javaWhitespace}','');
https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
取代
select replace ('XX00 0XX',' ','')
(如蜂房1.3.0和2.1.0的)。
如果您在刪除*常規空格*和'REGEXP_REPLACE'後工作,您只需要'REGEXP_REPLACE(postcode,'+','')' –