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)
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526