问题描述
嗨,汤姆
我有一个查询,我试图在给定字符串中替换非空白字符,该字符串可能具有整数或小数与单个空格 (其中非空格存在,示例如下),并且可能存在具有多个或一个空格的字符串 (不必替换一个空格)
没有空格的字符串也需要插入括号内的空格,例如下面的括号 (可以是整数,小数和整列字符串的组合)
例如:-
80.0磅 (50公斤) 应为80.0磅 (50公斤)
102毫米Dia) 应102毫米Dia,并删除 (错字问题)
610毫米应该是610毫米的
<= 356毫米/14in应该 <= 14英寸 (356毫米)
我尝试了以下操作,但不起作用
我还有另一个问题,是否可以替换为下面的例子 <= 356毫米/14in到 <= 14英寸 (356毫米) (我在 “英寸” 的大写字母) 与单个空格和括号内的空格格式输出?
我有一个查询,我试图在给定字符串中替换非空白字符,该字符串可能具有整数或小数与单个空格 (其中非空格存在,示例如下),并且可能存在具有多个或一个空格的字符串 (不必替换一个空格)
没有空格的字符串也需要插入括号内的空格,例如下面的括号 (可以是整数,小数和整列字符串的组合)
例如:-
80.0磅 (50公斤) 应为80.0磅 (50公斤)
102毫米Dia) 应102毫米Dia,并删除 (错字问题)
610毫米应该是610毫米的
<= 356毫米/14in应该 <= 14英寸 (356毫米)
我尝试了以下操作,但不起作用
SELECT Value as DisplayValue, CASE WHEN (TRIM(Value) IS NOT NULL AND REGEXP_LIKE(Value,'[(|[][:space:]*[a-zA-Z.-;,=0-9[:space:]]*\s*(\s*MM|IN|IPM|KG|M|LB|EA|FT|DEG|N|FPM|S|LBS\s*)\s*[:space:]*[]|)]','i')) THEN REGEXP_REPLACE(EPE.DISPLAYVALUE, '([0-9](MM|IN|IPM|KG|M|LB|EA|FT|DEG|N|FPM|S|LBS)*[-/]\s*[0-9]*[.0-9]*\s*(MM|IN|IPM|KG|M|LB|EA|FT|DEG|N|FPM|S|LBS))','\1 \2') -- for whitespace sinhMM|IN|IPM|KG|M|LB|EA|FT|DEG|N|FPM|S Square Brackets FROM Table;复制
我还有另一个问题,是否可以替换为下面的例子 <= 356毫米/14in到 <= 14英寸 (356毫米) (我在 “英寸” 的大写字母) 与单个空格和括号内的空格格式输出?
专家解答
听起来您正在尝试使用正则表达式修复数据输入错误。这总是不稳定的,因为假阳性和阴性的风险很高。试图用一个巨大的正则表达式修复所有东西是疯狂的肯定方法。
当然,你可以用这样的东西来代替:
但你冒着以下风险:
-过于具体,因此您需要编写更多的正则表达式来处理其他不匹配
-太宽了,所以它意外地改变了碰巧匹配的值
最终,您将不得不花费大量时间仔细检查更改; 在某些时候,手动更改数据会更快!
当然,你可以用这样的东西来代替:
select regexp_replace ( '356mm/14in', '([0-9]+)mm.([0-9]+)in', '\2 Inch (\1 mm)' ) regex from dual; REGEX 14 Inch (356 mm)复制
但你冒着以下风险:
-过于具体,因此您需要编写更多的正则表达式来处理其他不匹配
-太宽了,所以它意外地改变了碰巧匹配的值
最终,您将不得不花费大量时间仔细检查更改; 在某些时候,手动更改数据会更快!
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
689次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
635次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
546次阅读
2025-04-20 10:07:02
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
494次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
490次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
480次阅读
2025-04-22 00:13:51
一页概览:Oracle GoldenGate
甲骨文云技术
469次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
418次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
372次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
357次阅读
2025-05-05 19:28:36