Je veux me débarrasser de certains caractères dans un champ qui stent format. Par exemple, remplacez la ponctuation par un caractère vide. Comment le réaliser compte tenu des caractères candidats à effacer.Comment se débarrasser de certains caractères d'un champ de chaîne dans Hive?
Répondre
Utilisez regexp_replace
avec un motif par exemple '[_.,!?-]'
, listez les caractères que vous souhaitez supprimer dans le motif. Cela remplacera le caractère dans le modèle avec des espaces:
select regexp_replace('test_string_with-puctuations,.!?','[_.,!?-]',' ');
Sortie:
test string with puctuations
sélectionnez regexp_replace ('test_string,', "_ avec-827puctuations, 234..! ? ', ' [_.,!? -] :; | {{}() * & ^% $ # @! ~ '<>/'' =,.," "?;:" "【! @ # ¥% ...... & *() - + ~ · ',' '); – yanachen
Pourquoi cette requête ne peut pas se débarrasser des puctuations de la chaîne – yanachen
1. Point-virgule; devrait être échappé dans la ruche car il a une signification particulière. Aussi, si vous voulez supprimer tous les non-ASCII, vous pouvez utiliser le modèle '\\ P {ASCII}'. 'select regexp_replace ('test_string \\;' ??« avec-827puctuations, 234.!? ',' \\ P {ASCII} | [.,!? -] | \\; ',' '); ' – leftjoin
Ajouter un échantillon de données + résultats requis –