濮阳杆衣贸易有限公司

主頁 > 知識庫 > Oracle中正則表達(dá)式的使用實(shí)例教程

Oracle中正則表達(dá)式的使用實(shí)例教程

熱門標(biāo)簽:濟(jì)南地圖標(biāo)注公司 安陽外呼系統(tǒng)免費(fèi) 圖像地圖標(biāo)注 貴陽電話外呼系統(tǒng)哪家好 分布式呼叫中心 400電話是不是免費(fèi)申請 呼倫貝爾智能手機(jī)地圖標(biāo)注 海南400電話哪里辦理 南寧人工智能電銷機(jī)器人費(fèi)用

前言

正則表達(dá)式已經(jīng)在很多軟件中得到廣泛的應(yīng)用,包括*nix(Linux, Unix等),HP等操作系統(tǒng),PHP,C#,Java等開發(fā)環(huán)境。

本文主要介紹了關(guān)于Oracle中正則表達(dá)式的使用方法,下面話不多說了,來一起看看詳細(xì)的介紹。

Oracle使用正則表達(dá)式離不開這4個(gè)函數(shù):regexp_like、regexp_substr、regexp_instr、regexp_replace。

regexp_like

該函數(shù)只能用于條件表達(dá)式,和 like 類似,但是使用的正則表達(dá)式進(jìn)行匹配

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

regexp_substr

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

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

下面是一些實(shí)例

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

regexp_instr

該函數(shù)和 instr 類似,用于標(biāo)定符合正則表達(dá)式的字符子串的開始位置,Oracle數(shù)據(jù)庫中的REGEXP_INSTR函數(shù)的語法是

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

下面是一些實(shí)例

--找到字符串中的第一個(gè)”e”字的位置
--返回2
SELECT REGEXP_INSTR ('hello itmyhome', 'e') FROM dual; 
--“1”為開始位置 “2”是搜索第二個(gè)匹配的,”0”是return_option 
--返回出現(xiàn)的第一個(gè)字符位置“c”是區(qū)分大小寫 ,所以將返回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;
--匹配多個(gè)備選
SELECT REGEXP_INSTR ('Itmyhome', 'a|i|o|e|u') FROM dual;

regexp_replace

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

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

如下是一些實(shí)例

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

總結(jié)

以上就是這篇文章的全部內(nèi)容了,本文還有許多不足,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Oracle通過正則表達(dá)式分割字符串 REGEXP_SUBSTR的代碼詳解
  • Oracle 正則表達(dá)式實(shí)例詳解
  • ORACLE數(shù)據(jù)庫中怎么求除數(shù)字、字母之外的非中文字符的正則表達(dá)式
  • oracle正則表達(dá)式regexp_like的用法詳解
  • Oracle正則表達(dá)式使用介紹
  • Oracle 10G:PL/SQL正規(guī)表達(dá)式(正則表達(dá)式)手冊
  • ORACLE 正則解決初使化數(shù)據(jù)格式不一致
  • Oracle數(shù)據(jù)庫正則表達(dá)式使用場景代碼實(shí)例

標(biāo)簽:郴州 南充 遼源 合肥 許昌 涼山 焦作 滁州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle中正則表達(dá)式的使用實(shí)例教程》,本文關(guān)鍵詞  Oracle,中,正則,表達(dá)式,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle中正則表達(dá)式的使用實(shí)例教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于Oracle中正則表達(dá)式的使用實(shí)例教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    贵州省| 宁陵县| 青阳县| 井研县| 永登县| 喀喇沁旗| 垫江县| 东明县| 湄潭县| 高安市| 佳木斯市| 交口县| 麟游县| 永春县| 元阳县| 壤塘县| 怀安县| 安陆市| 曲靖市| 白城市| 简阳市| 武乡县| 永定县| 西平县| 汶川县| 会同县| 西峡县| 福州市| 铁岭市| 翼城县| 浮山县| 巴里| 民勤县| 阳泉市| 喀什市| 赣榆县| 和政县| 大庆市| 宿迁市| 丽水市| 黔西县|