主要解决问题
字符串中存在中文,将中文识别出来,并替换为想要的字符串。
实现原理
(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)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




