当前位置: 首页 > news >正文

Oracle开发中的正则表达式

今天在一个技术讨论群里有人问了一个问题,@我了一下,我就看了一眼。问题给了一个字符串,字符串里有数字有字母有特殊符号,需求是取该字符串中连续的数字。要求用正则表达式。我对正则表达式也不是精通,一知半解。就帮他看了一下,想了一个思路:

1、先找到第一个数字出现的位置;

2、从第一个数字的位置开始,找到第一个非数字出现的位置;

3、然后从第一个出现数字的位置开始截取字符,截取到第一个非字符的位置

根据以上思路写了一个函数如下:

 create or replace  function fc_get_number_lx(i_str in varchar2) return varchar2 is
  
    v_num1 number;
    v_num2 number;
    v_str  varchar2(1000);
  begin
  
    select regexp_instr(i_str, '\d', 1, 1) into v_num1 from dual;
    select regexp_instr(i_str, '\D', v_num1, 1) into v_num2 from dual;
  
    select substr(i_str, v_num1, v_num2 - v_num1) into v_str from dual;


    return v_str;
  end;


end pkg_qcf_tool;


当然,也可以直接取值,不写成函数,把上面的函数内容直接写一条语句即可:

select substr(i_str, regexp_instr(i_str, '\d', 1, 1), regexp_instr(i_str, '\D', regexp_instr(i_str, '\d', 1, 1), 1) - regexp_instr(i_str, '\d', 1, 1)) into v_str from dual;select substr(i_str, v_num1, v_num2 - v_num1) from dual;


不知道能不能直接使用正则表达式,有兴趣的可以试一下~~


相关文章:

  • 选择算法
  • 【点杀iOS】深拷贝浅拷贝copy的那些事儿
  • 【性能调优】如何将Hybris启动时间减少30%-50%
  • springJDBC一对多关系,以及Java递归,jsp递归的实现
  • 如何修改myeclipse中web项目的工作路径或默认路径
  • Leetcode——最长不重复子串
  • 修改 SVN 账户密码的方法
  • 一个有趣的算法题。。。
  • Codeforces Gym 100733A Shitália 计算几何
  • configure: error: png.h not found.
  • About SOuP
  • js数组如何去重
  • Scala入门指南与建议
  • Java学习之神奇的i=i++
  • How to setup Wicket Examples in Eclipse
  • 网络传输文件的问题
  • python3.6+scrapy+mysql 爬虫实战
  • __proto__ 和 prototype的关系
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • JavaScript类型识别
  • javascript数组去重/查找/插入/删除
  • MySQL主从复制读写分离及奇怪的问题
  • opencv python Meanshift 和 Camshift
  • python docx文档转html页面
  • Sass Day-01
  • Sequelize 中文文档 v4 - Getting started - 入门
  • Web Storage相关
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 力扣(LeetCode)21
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 数组的操作
  • 双管齐下,VMware的容器新战略
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 以太坊客户端Geth命令参数详解
  • 找一份好的前端工作,起点很重要
  • Java总结 - String - 这篇请使劲喷我
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • $.each()与$(selector).each()
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (4)(4.6) Triducer
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (算法设计与分析)第一章算法概述-习题
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • .Net Remoting(分离服务程序实现) - Part.3