a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > Oracle > 正文

Oracle中正則表達式的使用實例教程

2024-08-29 14:00:46
字體:
來源:轉載
供稿:網友

前言

正則表達式已經在很多軟件中得到廣泛的應用,包括*nix(Linux, Unix等),HP等操作系統,PHP,C#,Java等開發環境。

本文主要介紹了關于Oracle中正則表達式的使用方法,下面話不多說了,來一起看看詳細的介紹。

Oracle使用正則表達式離不開這4個函數:regexp_like、regexp_substr、regexp_instr、regexp_replace。

regexp_like

該函數只能用于條件表達式,和 like 類似,但是使用的正則表達式進行匹配

//查詢所有包含小寫字母或者數字的記錄。 select * from fzq where regexp_like(value,'^([a-z]+|[0-9]+)$');

regexp_substr

該函數和 substr 類似,用于拾取合符正則表達式描述的字符子串,該函數的定義如下

function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier) - String 輸入的字符串 - pattern 正則表達式 - position 標識從第幾個字符開始正則表達式匹配。(默認為1) - occurrence 標識第幾個匹配組。(默認為1) - modifier 取值范圍: i:大小寫不敏感; c:大小寫敏感; n:點號 . 不匹配換行符號; m:多行模式; x:擴展模式,忽略正則表達式中的空白字符。

下面是一些實例

--檢索中間的數字SELECT REGEXP_SUBSTR(a,'[0-9]+') FROM test_reg_substr WHERE REGEXP_LIKE(a, '[0-9]+');--檢索中間的數字(從第一個字母開始匹配,找第2個匹配項目)SELECT NVL(REGEXP_SUBSTR(a,'[0-9]+',1, 2), '-') AS a FROM test_reg_substr WHERE REGEXP_LIKE(a, '[0-9]+');

regexp_instr

該函數和 instr 類似,用于標定符合正則表達式的字符子串的開始位置,Oracle數據庫中的REGEXP_INSTR函數的語法是

REGEXP_INSTR (source_char, pattern [, position [, occurrence  [, return_option [, match_parameter ] ] ] ] ) - source_char 搜索值的字符表達式 - pattern 正則表達式 - position 可選。搜索在字符串中的開始位置。如果省略,則默認為1,這是字符串中的第一個位置。 - occurrence 可選。它是模式字符串中的第n個匹配位置。如果省略,默認為1。  - return_option 可選 指定Oracle返回的位置,  0那么Oracle將返回出現的第一個字符的位置。這是默認的,  1則Oracle返回字符之后發生的位置。 - match_parameter 取值范圍:  i:大小寫不敏感;  c:大小寫敏感;  n:點號 . 不匹配換行符號;  m:多行模式;  x:擴展模式,忽略正則表達式中的空白字符。

下面是一些實例

--找到字符串中的第一個”e”字的位置--返回2SELECT REGEXP_INSTR ('hello itmyhome', 'e') FROM dual; --“1”為開始位置 “2”是搜索第二個匹配的,”0”是return_option --返回出現的第一個字符位置“c”是區分大小寫 ,所以將返回13SELECT REGEXP_INSTR ('my is itMyhome', 'm', 1, 2, 0, 'c') FROM dual;--SELECT REGEXP_INSTR ('World filled with love', 'with', 1, 1, 0, 'i') FROM dual;--匹配多個備選SELECT REGEXP_INSTR ('Itmyhome', 'a|i|o|e|u') FROM dual;

regexp_replace

該函數和 replace 類似,用于替換符合正則表達式的字符串,Oracle數據庫中的REGEXP_REPLACE函數的語法是

REGEXP_REPLACE(source_char, pattern [, replace_string  [, position [, occurrence [, match_parameter ] ] ] ]) - source_char 搜索值的字符表達式 - pattern 正則表達式 - replace_string 可選。匹配的模式將被替換replace_string字符串。 如果省略replace_string參數,將刪除所有匹配的模式,并返回結果字符串。 - position 可選。在字符串中的開始位置搜索。如果省略,則默認為1。 - occurrence 它是模式字符串中的第n個匹配位置。如果省略,默認為1。 - match_parameter i:大小寫不敏感; c:大小寫敏感; n:點號 . 不匹配換行符號; m:多行模式; x:擴展模式,忽略正則表達式中的空白字符。

如下是一些實例

--字符串替換--luck is my network idSELECT REGEXP_REPLACE ('itmyhome is my network id', '^(/S*)', 'luck') FROM dual;--此示例將所指定的/d數字將以#字符替換--Result: '#, #, and ## are numbers in this example'SELECT REGEXP_REPLACE ('2, 5, and 10 are numbers in this example', '/d', '#') FROM dual;

總結

以上就是這篇文章的全部內容了,本文還有許多不足,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到oracle教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中文字幕精品一区 | 欧美视频在线免费 | 国产精品一区二区麻豆 | 国产精品成人一区二区三区夜夜夜 | 韩国女主播bj精品久久 | 91精品国产欧美一区二区成人 | 九九热这里有精品 | 午夜影院a| 中文成人在线 | 久久精品国产免费 | 免费一级毛片 | 亚洲一区在线播放 | 欧洲亚洲精品久久久久 | 成人视屏在线观看 | 亚洲天堂一区 | 91福利电影在线观看 | 国产精品国产三级国产aⅴ入口 | 亚洲精品久久久久久一区二区 | 色姑娘综合网 | 日韩国产在线观看 | 日韩国产欧美一区二区 | 国产精品99久久免费观看 | 亚洲人在线 | 日本色站 | 亚洲视频一区二区三区 | 亚洲国产精品一区 | av激情在线 | 日本免费黄色网 | 欧洲成人午夜免费大片 | 国产情侣一区二区三区 | www,99热| 男插男视频 | 激情五月婷婷综合 | 一区二区三区高清 | 中文字幕 国产精品 | 中文字幕欧美日韩 | 中文久久 | 久久精品99国产精品亚洲最刺激 | 久久国产香蕉视频 | 日韩电影一区二区三区 | 九九久久精品 |