GBase 8a
运维管理
文章

南大通用GBase 8a之替换字符串中中文的方法

发表于2025-01-24 11:02:17315次浏览1个评论

主要解决问题

字符串中存在中文,将中文识别出来,并替换为想要的字符串。

实现原理

(1)用REGEXP_REPLACE函数,将字符串里的中文字符替换为所需要的字符串。

(2)正则表达式[\u4e00-\u9fa5]用于匹配中文字符。

(3)由于识别到的中文,每个中文字符占3个字节(折合一个英文字符),这里需要去重。正则表达式(Chinese)+的含义是匹配一个或多个连续的Chinese字符串。其中,(Chinese)是一个捕获组,它将Chinese当作一个整体;+表示前面的元素(也就是捕获组里的Chinese)出现一次或多次。再次REGEXP_REPLACE函数嵌套,即可实现去重效果。

 实现方式


gbase> select a,REGEXP_REPLACE( REGEXP_REPLACE(a,'[^\u4e00-\u9fa5]', 'Chinese') ,'(Chinese)+', 'Chinese' ) from zhao ;
+---------------+--------------------------------------------------------------------------------------------+
| a             | REGEXP_REPLACE( REGEXP_REPLACE(a,'[^\u4e00-\u9fa5]', 'Chinese') ,'(Chinese)+', 'Chinese' ) |
+---------------+--------------------------------------------------------------------------------------------+
| abc           | abc                                                                                        |
| ab赵钱孙c     | abChinesec                                                                                 |
| abc周润发     | abcChinese                                                                                 |
| 周星驰haha    | Chinesehaha                                                                                |
+---------------+--------------------------------------------------------------------------------------------+
4 rows in set (Elapsed: 00:00:00.06)

 

 

评论

登录后才可以发表评论
用户头像
levvel发表于 4个月前
给你点个赞