如何通过正则表达式实现字符串数字与字符分组并添加空格分隔?
解决数字与字符分组加空格的正则方案
用REGEXP_REPLACE配合正则匹配数字和字母的边界,就能实现分组加空格的效果,直接替换两种类型字符的衔接位置:
核心SQL语句
REGEXP_REPLACE(input_string, '(\d)([A-Za-z])|([A-Za-z])(\d)', '\1\3 \2\4')
效果演示
输入字符串:01ABC23fg98
执行后输出:01 ABC 23 fg 98
正则逻辑说明
(\d)([A-Za-z]):匹配数字后跟字母的衔接点,把数字和字母分别捕获到第1、2组([A-Za-z])(\d):匹配字母后跟数字的衔接点,把字母和数字分别捕获到第3、4组- 替换时用
\1\3保留前一个字符(数字或字母),\2\4保留后一个字符(字母或数字),中间加空格,刚好在不同类型的分组之间插入分隔符
处理带空格的输入
如果原始字符串可能包含多余空格,可以先移除再处理:
REGEXP_REPLACE(REGEXP_REPLACE(input_string, ' ', ''), '(\d)([A-Za-z])|([A-Za-z])(\d)', '\1\3 \2\4')
内容的提问来源于stack exchange,提问作者Winston
相关产品推荐
相关产品推荐

