SQL正則表達式總結

這里寫目錄標題

  • 一、元字符
  • 二、正則表達函數
    • 1、 `regexp_like(x,pattern[,match_option])`
    • 2、 regexp_instr(x,pattern[,start[,occurrence[,return_option[, match_option]]]])
    • 3、 REGEXP_SUBSTR(x,pattern[,start[,occurrence[, match_option]]])
    • 4、 REGEXP_REPLACE(x,pattern[,replace_string[,start[,occurrence[, match_option]]]])

一、元字符

當我們要進行一些簡單的糊涂查詢時用百分號(%),通配符(_)就可以了.其中%表達任意長度的字符串,_表示任意的某一個字符。但如果在一些復雜的查詢中關用這兩個符號sql語句就會非常復雜,而且也不一定能實現.從Oracle 10g開始引入了在其他程序語言中普通使用的正則表達式。主要有regexp_like(匹配),regexp_replace(替換),regexp_substr(提取),regexp_instr(包含)四個正則表達式函數。

在這里插入圖片描述

二、正則表達函數

1、 regexp_like(x,pattern[,match_option])

含義:查看x是否與pattern相匹配,該函數還可以提供一個可選的參數match_option字符串說明默認的匹配選項。match_option的取值如下:

  1. ‘c’ 說明在進行匹配時區分大小寫(缺省值);
  2. ‘i’ 說明在進行匹配時不區分大小寫;
  3. ‘n’ (.)點號能表示所有單個字符;
  4. ‘m’ 字符串存在換行的時候當作多行處理.這樣 就可匹配每行的結尾 . 不然的話 就可匹配每行的結尾.不然的話 就可匹配每行的結尾.不然的話只匹配字符串最后的位置。
select * from emp where regexp_like(ename,'^a[a-z]*n$')解析:
從emp表中匹配ename字段,要求以a開頭,a-z任意多個字符(包括0個),n結尾。
例如ename為arwen或arwin或anden.但Arwen不能被匹配.因為默認是區分大小寫。select * from emp where regexp_like(ename,'^a[a-z]*n$','i')可以查找ename為Arwen的行記錄。

2、 regexp_instr(x,pattern[,start[,occurrence[,return_option[, match_option]]]])

含義:用于在x中查找pattern。返回pattern在x中出現的位置。匹配位置從1開始。可以參考字符串函數 INSTR(),參數相關:

  1. ‘start’ 開始查找的位置;
  2. ‘occurrence’ 說明應該返回第幾次出現pattern的位置;
  3. ‘return_option’ 說明應該返回什么整數。若該參數為0,則說明要返回的整數是x中的一個字符的位置;若該參數為非0的整數,則說明要返回的整數為x中出現在pattern之后的字符的位置;
  4. ‘match_option’ 修改默認的匹配設置。與regexp_like里面的相同。
SELECT REGEXP_INSTR('hello world','o',1,1,0);   
==》5 解析:
查找o在hello word中第一次出現的位置。
start=1,occurrence=1,return_option=0SELECT REGEXP_INSTR('hello world','o',1,1,1);
==》6查找o在hello word中第一次出現后的字符的位置,這里return_option=1也可以等于其他非0整數。SELECT REGEXP_INSTR('hello world','o',1,2,0);
==》8查找o在hello word中第二次出現的位置(空格也屬于一個字符位置)。

3、 REGEXP_SUBSTR(x,pattern[,start[,occurrence[, match_option]]])

**含義:**用于在x中查找pattern并返回。可以參考字符串函數 SUBSTR(),參數同REGEXP_INSTR函數。

在這里插入圖片描述

SELECT REGEXP_SUBSTR('hello world','l{2}');            
==》ll解析:
查詢到匹配的字符串才返回匹配的字符.沒查到就返回空。

4、 REGEXP_REPLACE(x,pattern[,replace_string[,start[,occurrence[, match_option]]]])

含義:用于在x中查找pattern,并將其替換為replae_string。可以參考字符串函數 REPLACE(),參數同REGEXP_INSTR函數。

REPLACE(String,from_str,to_str) 即:將String中所有出現的from_str替換為to_str。注意:from_str不能是空字符串 ('')。

SELECT REGEXP_REPLACE('hello world','o','x',1,1);            
==》hellx world解析:
start=1,occurrence=1。SELECT REGEXP_REPLACE('hello world','o','x');            
==》hellx wxrldSELECT REGEXP_REPLACE('hello world','o','x',1,2);            
==》hello wxrld

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/907415.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/907415.shtml
英文地址,請注明出處:http://en.pswp.cn/news/907415.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Shortest path 代碼

Project https://graphics.cs.utah.edu/research/projects/shortest-path-to-boundary/ Build and Debug Fork:(在Win10上) https://github.com/chunleili/Shortest-Path-to-Boundary-for-Self-Intersecting-Meshes commit hash d3160168d2b6a58188d12e6cd959da…

AMBA總線家族成員

在AMBA總線協議體系中,AXI4雖然是最新且性能最強的總線協議,但AHB和APB仍然被廣泛使用,主要原因在于??場景適配性、資源優化和系統兼容性??的綜合考量。以下是具體分析: AMBA 1?:僅包含ASB和APB1。?AMBA 2?&am…

前端高頻面試題1:HTML/CSS/瀏覽器/計算機網絡

目錄 1.為什么會出現margin塌陷? 2.如何解決margin塌陷? 3.HTML5有哪些新特性? 4.常見的語義化標簽有哪些?語義化標簽的好處? 5.使用css和js做動畫有何優劣 6.如何實現文本超出展示省略號 7.deep在css中存在嗎&…

基于 Spring Boot + Vue 的墻繪產品展示交易平臺設計與實現【含源碼+文檔】

項目簡介 本系統是一個基于 Spring Boot Vue 技術棧開發的墻繪產品展示交易平臺,旨在提供一個高效、便捷的在線商城平臺,方便用戶瀏覽、選購墻繪產品,并提供管理員進行商品管理、訂單管理等功能。系統采用了前后端分離的架構,前…

STM32F103_Bootloader程序開發05 - Keil修改生成文件的路徑與文件名,自動生成bin格式文件

導言 通過Keil的相關配置,可以靈活地修改輸出文件的保存路徑及文件名稱。在Bootloader程序開發過程中,合理配置輸出文件對于后續固件升級和自動化腳本處理至關重要。完成路徑和文件名配置后,還可以借助Keil自帶的fromelf.exe工具,…

力扣每日一題2025.5.28——題號:3372.連接兩棵樹后最大目標節點數目 |

目錄 題目鏈接:3372. 連接兩棵樹后最大目標節點數目 I - 力扣(LeetCode) 題目描述 解法一: Java寫法: C寫法: 運行時間 時間復雜度和空間復雜度 總結 題目鏈接:3372. 連接兩棵樹后最大目…

華為防火墻NAPT配置

1.實驗拓撲 2.實驗配置 [SW1]dis cu # sysname SW1 # vlan batch 10 20 # interface Vlanif10ip address 192.168.10.254 255.255.255.0 # interface Vlanif20ip address 192.168.20.253 255.255.255.0 # interface GigabitEthernet0/0/1port link-type accessport default vl…

java導入excel

這樣讀取excel時,得到的是結果值,而不是單元格的公式 import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil;InputStream inputStream file.getInputStream(); ExcelReader reader ExcelUtil.getReader(inputStream, 1); L…

stm32cube ide如何生成LL庫工程

在 STM32Cube IDE 里生成使用 LL(Low Layer)庫的工程,可按以下步驟操作: 1. 新建 STM32 工程 啟動 STM32Cube IDE,選擇File→New→STM32 Project。依據需求挑選目標 MCU 型號,接著點擊Next。 2. 配置工程…

阿里通義實驗室突破空間音頻新紀元!OmniAudio讓360°全景視頻“聲”臨其境

在虛擬現實和沉浸式娛樂快速發展的今天,視覺體驗已經遠遠不夠,聲音的沉浸感成為打動用戶的關鍵。然而,傳統的視頻配音技術往往停留在“平面”的音頻層面,難以提供真正的空間感。阿里巴巴通義實驗室(Qwen Lab&#xff0…

二十八、面向對象底層邏輯-SpringMVC九大組件之ViewResolver接口設計

在 Spring MVC 框架中,視圖解析器(ViewResolver)是連接控制器邏輯與具體視圖技術的核心紐帶。它通過抽象化的接口設計,將視圖的渲染邏輯與業務邏輯解耦,使開發者能夠靈活支持 JSP、Thymeleaf、FreeMarker 等多種視圖技…

LiveWallpaperMacOS:讓你的 Mac 桌面動起來

隨著桌面美化需求的不斷提升,用戶對于桌面壁紙的要求已經不再局限于靜態圖片。越來越多的 Mac 用戶希望桌面能像 Windows 一樣,擁有動態壁紙,展現個性、提升體驗。LiveWallpaperMacOS 正是這樣一款讓你的 Mac 桌面煥發活力的開源項目。 本文將詳細介紹 LiveWallpaperMacOS …

豆瓣電視劇數據工程實踐:從爬蟲到智能存儲的技術演進(含完整代碼)

通過網盤分享的文件:資料 鏈接: https://pan.baidu.com/s/1siOrGmM4n-m3jv95OCea9g?pwd4jir 提取碼: 4jir 1. 引言 1.1 選題背景 在影視內容消費升級背景下,豆瓣電視劇榜單作為國內最具影響力的影視評價體系,其數據價值體現在&#xff1a…

集成均衡功能電池保護芯片在大功率移動電源的應用,創芯微CM1341-DAT、杰華特JW3312、賽微微電CW1244、中穎SH366006

一文了解集成均衡功能電池保護IC在大功率移動電源的應用 創芯微CM1341-DAT 創芯微CM1341-DAT是一款專用于4串鋰離子/磷酸鐵鋰電池的保護芯片,內置有高精度電壓檢測電路和電流檢測電路。通過檢測各節電池的電壓、充放電電流及溫度等信息,實現電池過充電…

PHP生成pdf方法

1:第一種方法: 主要使用PHP的擴展 【 “spatie/browsershot”: “3.57”】 使用這個擴展生成PDF需要環境安裝以下依賴 1.1:NPM【版本:9.2.0】 1.2:NODE【版本:v18.19.1】 1.3:puppeteer【npm in…

聯通專線加持!億林網絡 24 核 32G 裸金屬服務器,千兆共享帶寬適配中小型企業 IT 架構

在當今數字化時代,企業的業務運營越來越依賴高效、穩定的 IT 架構。對于中小型企業而言,如何在有限的預算內構建強大且可靠的 IT 基礎設施,是一項關鍵挑戰。億林網絡推出的 24 核 32G 裸金屬服務器,搭配聯通專線和千兆共享帶寬&am…

SQL計算列

SqlServer: ALTER TABLE KC_BILLHEAD ADD bill_no AS coalesce(billno , ) PERSISTED; 這是一個SQL語句,用于向表KC_BILLHEAD添加一個計算列bill_no。讓我解釋一下這個語句的各個部分: ALTER TABLE KC_BILLHEAD - 修改表KC_BILLHEAD的結構 ADD bill_n…

利用海外代理IP,做Twitter2026年全球趨勢數據分析

近年來,社交媒體趨勢分析逐漸成為品牌監控、市場洞察和消費者研究的必備工具。而當談到全球趨勢數據分析,很多人都會立即想到 Twitter趨勢(逼近連美麗國的總統都喜歡在上面發表自己的看法- -!!!)。Twitter趨勢,即Twitt…

【Vue3】Vue3 + TypeScript 中如何區分開發和生產環境的 API 地址(支持 axios 請求

Vue3 TypeScript 中如何區分開發和生產環境的 API 地址(支持 axios 請求) 在實際項目開發中,我們通常會遇到以下需求: 本地開發時訪問的是本地 API(如 http://localhost:3000);上線打包后訪問…

【數據結構】線性表之“雙鏈表(帶頭循環雙向鏈表)”

- 第 99 篇 - Date: 2025 - 05 - 25 Author: 鄭龍浩/仟墨 【數據結構】 續上一篇: 線性表之“單鏈表” 文章目錄 “雙鏈表(帶頭雙向循環鏈表)” 的實現:分步解釋所有函數:test.cDListNode.hDListNode.c “雙鏈表(帶頭雙向循環鏈表…