中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle中正則表達式怎么用

發布時間:2021-07-28 13:59:49 來源:億速云 閱讀:158 作者:小新 欄目:數據庫

小編給大家分享一下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”字的位置
--返回2
SELECT REGEXP_INSTR ('hello itmyhome', 'e') FROM dual; 
--“1”為開始位置 “2”是搜索第二個匹配的,”0”是return_option 
--返回出現的第一個字符位置“c”是區分大小寫 ,所以將返回13
SELECT 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 id
SELECT 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;

以上是“Oracle中正則表達式怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

四会市| 栾城县| 清丰县| 孝义市| 城步| 同仁县| 都江堰市| 灵山县| 河西区| 孝昌县| 长宁区| 黔南| 凤山县| 论坛| 兴和县| 卢龙县| 萍乡市| 阳春市| 荔波县| 保定市| 西贡区| 探索| 崇仁县| 郯城县| 云龙县| 富源县| 永靖县| 白银市| 新疆| 西乌| 六盘水市| 济宁市| 洪湖市| 佳木斯市| 葵青区| 佛冈县| 新沂市| 鲁甸县| 如皋市| 左贡县| 永年县|