文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Oracle 正则表达式实例详解

2024-04-02 19:55

关注

Oracle 正则表达式实例详解

FORM开发中的按行拆分需求:拆分后的行要有规律,并按前后层次排序

  需求分析如下:

     现有行: 2  ,      2.1  ,     2.2   ,   2.3           3
                     2.1.1,    2.1.2  ,    2.1.3 ,    2.2.1  , 2.1.1.1, 2.1.1.2,

对 2 进行拆分得到的 结果应该是 2.4 (2.4 是通过 查看历史记录中以2 开头,有一位小数点,小数点后一位最大值,获得该最大值+1 ,得到既是新行的后缀,保证拆分是按照前后顺序递增的)

对 2.1 进行拆分得到的应该是 :2.1.4 首先要保证 每次拆分得到的下一行都是多一位小数点 

对2.1 拆分 获取最大后缀 比较对象 时候  应该匹配前缀是2.1的 且只有两位小数点的   (排除前缀符合位数不符合的情况:2.1.1.1 ,2.1.1.2 )

对3 进行拆分 没有历史记录是以 3开头的情况 这时候 就要重新 开始拆分:得到的应该是 3.1

这里的关键就是匹配历史记录进行比较,决定拆分后的最后一位的最大值

  匹配的时候不能按照 数字的位数来判断,因为数字有可能是两位数,三位数,应该根据小数点来判断

匹配要使用到 正则表达式:

与PHP、Python一样Oracle 的正则表达式函数也是 主要由四个函数实现:相似匹配,定位查找,获取匹配子字符串,替换匹配结果(最重要)

(1)相似匹配: regexp_like() 

regexp(source_str,pattern,match_parameter)

 第一个参数:原字符串,第二个参数匹配模式,第三个参数匹配选项

第三个参数 匹配选项在这几个函数中都要相似作用(可选)

     常用: i:大小写不敏感; c:大小写敏感;          n:点号 . 不匹配换行符号;                   
                 m:多行模式;      x:扩展模式,忽略正则表达式中的空白字符。

匹配成功返回true 失败返回 false

我的使用:

IF REGEXP_LIKE(DEL_LINE_NUMBER, '^\d*\.\d*\.\d*$') THEN          --匹配只有两个小数点的数字,字符串

  模式中的符号说明:模式需要用一对双引号括起来
                                            ^ 标明字符串的开头,        $ 标明字符串的结尾 
                                            \d 匹配 一个0-9 的数字      * 号  匹配前面的字符0次或更多次
                                              \. 匹配一个点号,因为点号有其他含义,所以用\作为转义

(2)定位查找字符位置:regexp_instr( )


regexp_instr(source_string ,pattern,position,occurrence ,return_option ,match_parameter )
source_string:输入的字符串
pattern:正则表达式
position:标识从第几个字符开始正则表达式匹配。(默认为1)
occurrence:标识第几个匹配组。(默认为1)
return_option:0——返回第一个字符出现的位置。1:pattern下一个字符起始位置。
match_parameter:匹配模式

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯