电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

oracle正則表達式多項匹配時相似項有優先級詳解

瀏覽:146日期:2023-09-12 20:47:51
目錄前言: 一、正則表達式用法(Regexp_Like為例)1、語法規則2、注釋3、實例二、正則表達式優先級的注意點三、解決方案擴展:1、正則表達式過長2、替換規則失效四、總結 前言:

Oracle常用正則表達式函數主要以下5個:

REGEXP_LIKE:與LIKE的功能相似;REGEXP_SUBSTR :與SUBSTR的功能相似;REGEXP_INSTR :與INSTR的功能相似;REGEXP_REPLACE :與REPLACE的功能相似;REGEXP_COUNT :與COUNT的功能相似;

常用的正則表達式匹配符有以下運算符,本文重點來闡述“|”指定多個選項,容易被忽視的問題。

一、正則表達式用法(Regexp_Like為例)

Regexp_Like()函數 模糊匹配。

1、語法規則

regexp_like(source_string,pattern[match_parameter])

2、注釋source_string:傳入的字符串,可以是常量,也可以是某個值類型為串的列;pattern:要進行匹配的字符串;match_parameter:文本量,進一步訂制搜索,取值如下:‘i’ 用于不區分大小寫的匹配。‘c’ 用于區分大小寫的匹配。‘n’ 允許將句點“.”作為通配符來匹配換行符。如果省略該參數,句點將不匹配換行符。‘m’ 將源串視為多行。即將“^”和“$”分別看做源串中任意位置任意行的開始和結束,而不是看作整個源串的開始或結束。如果省略該參數,源串將被看作一行來處理。

如果取值不屬于上述中的某個,將會報錯。如果指定了多個互相矛盾的值,將使用最后一個值。如’ic’會被當做’c’處理。省略該參數時:默認區分大小寫、句點不匹配換行符、源串被看作一行。

3、實例

代碼:

select * from (select 'ABC你好' reg from dual union select 'a233' reg from dual)where regexp_like(reg,'[0-9]','c')--匹配有數字的字符串

效果:

解析:

可以看到正則表達式,通過后面的'[0-9]'的規則來獲取我們想要的數據。

二、正則表達式優先級的注意點

當我們使用REGEXP_REPLACE將多個表達式的數據替換時,這時候我們要考慮替換規則有沒有類似項,比如REGEXP_REPLACE(reg,'-BL|-BL1')即替換掉字符串reg里面包含-BL或者-BL1的字符串,此時如果我們按這種寫法REGEXP_REPLACE(reg,'-BL|-BL1'),實際效果是只會替換掉-BL,因為oracle會按照替換規則的順序來執行,如果滿足了第一個條件,后面的就不會再去執行了,這也是為了加快了程序的處理速度,但同時也會造成我們常常忽略的問題。

好的,我們來看看下面的具體案例吧。

代碼:

select reg, REGEXP_REPLACE(reg,'-BL|-BL1')reg_replace from (select 'A_123456D-BL1' reg FROM dual)

效果:

解析:

因為正則表達式,默認會按順序執行,此時正則表達式,-BL滿足規則了,就不會執行-BL1了,因此就會得到的結果是對應的REG字符串里面替換后還會多出了一個1。

三、解決方案

現實情況下,我們往往會有很多替換規則,少則幾個,多則好幾百,如果我們用replace函數估計要嵌套幾百次,估計你會直搖頭吧,雖然regexp_replace可以一次性將多個規則寫在一起,但是我們還是要注意上述提到的優先級的問題。因此我們需要將相同的部分放到最后,如上面說到的“-BL”此時就能達到我們的需求了。

擴展:

我們來看個現實的案例。當面對168個規則時我們會遇到哪些問題。

1、正則表達式過長

解決方法:嵌套多個正則表達式 ,像竹筍一樣多疊幾層即可。

2、替換規則失效

出來的數據還是有我們不想要的數據,比如下面的三個批次,我們只想保存一條,如果我們替換規則不當就會造成,這三個字符串替換后還是不相同的,無法達到我們想要的效果。

解決辦法:我們首先將所有的替換規則用EXCEL表例好,然后排好優先級,然后再去修改正則表達式。如圖所示我們將規則列好,然后用不同顏色標示優先級。然后再整理表達式。如下圖所示小編將最小匹配項的表達式放到最后面了,這樣就能達到我們想要的效果了。

四、總結

針對復雜的數據分析,首先建議從業務角度去規范,因為雖然技術可以處理,但是歷史數據處理成本是巨大,因此一個企業的數據底座搭建,是離不開強標準化的數據治理的。

到此這篇關于oracle正則表達式多項匹配時相似項有優先級的文章就介紹到這了,更多相關oracle正則表達式多項匹配內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Oracle 數據庫
主站蜘蛛池模板: 展厅设计公司,展厅公司,展厅设计,展厅施工,展厅装修,企业展厅,展馆设计公司-深圳广州展厅设计公司 | 臻知网大型互动问答社区-你的问题将在这里得到解答!-无锡据风网络科技有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 亚克力制品定制,上海嘉定有机玻璃加工制作生产厂家—官网 | 金刚网,金刚网窗纱,不锈钢网,金刚网厂家- 河北萨邦丝网制品有限公司 | 西安文都考研官网_西安考研辅导班_考研培训机构_西安在职考研培训 | 微妙网,专业的动画师、特效师、CG模型设计师网站! - wmiao.com 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | 手术室净化厂家_成都实验室装修公司_无尘车间施工单位_洁净室工程建设团队-四川华锐16年行业经验 | 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | 压砖机、液压制砖机、静压砖机、环保砖机生产厂家—杜甫机械 | 深圳3D打印服务-3D打印加工-手板模型加工厂-悟空打印坊 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 5nd音乐网|最新流行歌曲|MP3歌曲免费下载|好听的歌|音乐下载 免费听mp3音乐 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 【灵硕展览集团】展台展会设计_展览会展台搭建_展览展示设计一站式服务公司 | 考勤系统_考勤管理系统_网络考勤软件_政企|集团|工厂复杂考勤工时统计排班管理系统_天时考勤 | 不锈钢复合板厂家_钛钢复合板批发_铜铝复合板供应-威海泓方金属复合材料股份有限公司 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 美侍宠物-专注宠物狗及宠物猫训练|喂养|医疗|繁育|品种|价格 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | 萃取箱-萃取槽-PVC萃取箱厂家-混合澄清槽- 杭州南方化工设备 | hc22_hc22价格_hc22哈氏合金—东锜特殊钢| 成都中天自动化控制技术有限公司| 济南菜鸟驿站广告|青岛快递车车体|社区媒体-抖音|墙体广告-山东揽胜广告传媒有限公司 | 风电变桨伺服驱动器-风电偏航变桨系统-深圳众城卓越科技有限公司 | 真空上料机(一种真空输送机)-百科| 中细软知识产权_专业知识产权解决方案提供商 | 北京乾茂兴业科技发展有限公司| 岛津二手液相色谱仪,岛津10A液相,安捷伦二手液相,安捷伦1100液相-杭州森尼欧科学仪器有限公司 | 污泥烘干机-低温干化机-工业污泥烘干设备厂家-焦作市真节能环保设备科技有限公司 | 伟秀电气有限公司-10kv高低压开关柜-高低压配电柜-中置柜-充气柜-欧式箱变-高压真空断路器厂家 | 不锈钢/气体/液体玻璃转子流量计(防腐,选型,规格)-常州天晟热工仪表有限公司【官网】 | 酒精检测棒,数显温湿度计,酒安酒精测试仪,酒精检测仪,呼气式酒精检测仪-郑州欧诺仪器有限公司 | 国产频谱分析仪-国产网络分析仪-上海坚融实业有限公司 |