Oracle中如何提取处理字符串 输出首字母大写单下划线分隔结果
Oracle 字符串提取与格式化实现方法
针对给定的带HTML标签、冗余下划线、首尾空格的字符串,可按固定处理顺序用Oracle内置函数组合实现清洗转换,最终输出符合要求的结果。
核心实现SQL
SELECT INITCAP( TRIM( BOTH '_' FROM REGEXP_REPLACE( TRIM( REGEXP_REPLACE('<strong>peter_________Parker_____may</strong>___ ', '<[^>]+>', '') ), '_+', '_' ) ) ) AS cleaned_result FROM dual;
上述SQL执行后直接返回目标结果:Peter_Parker_May
逐步骤处理逻辑
- 移除HTML标签:通过
REGEXP_REPLACE(源字符串, '<[^>]+>', '')匹配所有<开头、>结尾的标签片段,替换为空值,处理后得到中间串peter_________Parker_____may___ - 清理首尾无效空白:用基础
TRIM()函数移除字符串首尾所有空格,处理后得到中间串peter_________Parker_____may___ - 合并连续下划线:通过
REGEXP_REPLACE(待处理串, '_+', '_')匹配1个及以上连续的下划线,统一替换为单个下划线,处理后得到中间串peter_Parker_may_ - 移除首尾残留下划线:用
TRIM(BOTH '_' FROM 待处理串)移除字符串首尾残留的下划线,处理后得到中间串peter_Parker_may - 单词首字母大写:调用Oracle内置
INITCAP()函数,自动将非字母字符(此处为下划线)分隔的每个单词首字母转为大写,其余字母转为小写,最终得到目标结果。
若待处理字符串包含更复杂的嵌套HTML标签、特殊符号,可根据实际业务规则调整对应正则匹配规则即可,当前示例场景下上述代码可直接运行使用。
内容的提问来源于stack exchange,提问作者Qwerty
相关产品推荐
相关产品推荐

