私はHive(Hadoop)を使ってSQLのような文を書いています。文字列内の単語間の空白を取り除く正規表現
フィールド内のスペースを削除する必要があります。例えば、郵便番号はXX00 0XX可能性があり、私はこれまでのところ0XX
の前にスペースを削除したい、私はこの正規表現があります。
REGEXP_REPLACE(postcode, '[[:space:]]*', '')
をしかし、動作するようには思えません。誰も助言することはできますか?
私はHive(Hadoop)を使ってSQLのような文を書いています。文字列内の単語間の空白を取り除く正規表現
フィールド内のスペースを削除する必要があります。例えば、郵便番号はXX00 0XX可能性があり、私はこれまでのところ0XX
の前にスペースを削除したい、私はこの正規表現があります。
REGEXP_REPLACE(postcode, '[[:space:]]*', '')
をしかし、動作するようには思えません。誰も助言することはできますか?
単純な(正規表現でない)置き換えに何か問題はありますか?あなたのversion of Hiveは、あなたが使用することができ、REPLACE()
をサポートしていない場合は
REPLACE(postcode, ' ', '')
:これを試してみてください
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
は(ハイブ1.3.0及び2.1.0のような)
select replace ('XX00 0XX',' ','')
を置き換えます。
* REGESP_REPLACEが正常に機能していれば、 'REGEXP_REPLACE(postcode、 '+'、 '')'が必要です –