oracle中正規表示式的研究

2021-04-14 05:40:21 字數 2164 閱讀 7888

oracle的正規表示式(regular expression)

oracle 10g支援正規表示式的四個新函式分別是:regexp_like、regexp_instr、regexp_substr、和regexp_replace。

它們在用法上與oracle sql 函式like、instr、substr 和replace 用法,但是它們使用posix 正規表示式代替了老的百分號(%)和萬用字元(_)字元。

posix 正規表示式由標準的元字元(metacharacters)所構成:'^

' 匹配輸入字串的開始位置,在方括號表示式中使用,此時它表示不接受該字元集合。 '

$' 匹配輸入字串的結尾位置。如果設定了 regexp 物件的 multiline 屬性,則 $ 也匹配 'n' 或 'r'。 '

.' 匹配除換行符 n之外的任何單字元。 '

?' 匹配前面的子表示式零次或一次。 '

+' 匹配前面的子表示式一次或多次。 '

*' 匹配前面的子表示式零次或多次。

'|' 指明兩項之間的乙個選擇。例子'^([a-z]+|[0-9]+)$'表示所有小寫字母或數字組合成的字串。

'( )' 標記乙個子表示式的開始和結束位置。

'' 標記乙個中括號表示式。

'' 乙個精確地出現次數範圍,m=《出現次數<=n,''表示出現m次,''表示至少出現m次。

num 匹配 num,其中 num 是乙個正整數。對所獲取的匹配的引用。

字元簇:

[[:alpha:]] 任何字母。

[[:digit:]] 任何數字。

[[:alnum:]] 任何字母和數字。

[[:space:]] 任何白字元。

[[:upper:]] 任何大寫字母。

[[:lower:]] 任何小寫字母。

[[:punct:]] 任何標點符號。

[[:xdigit:]] 任何16進製制的數字,相當於[0-9a-fa-f]。

各種操作符的運算優先順序

轉義符(), (?:), (?=), 圓括號和方括號

*, +, ?, , , 限定符

^, $, anymetacharacter 位置和順序

| 「或」操作

regexp_like 與like 操作符相似。如果第乙個引數匹配正規表示式它就解析為true。例如where regexp_like(ename,'^j[ao]','i') 將在ename 以ja 或jo 開始的情況下返回一行資料。'i' 引數指定正規表示式是大小寫敏感的。另外還可以在check 約束和函式索引中指定regexp_like。例如:

alter table emp add constraint regex01

check (regexp_like(ename,'^[[:alpha:]]+$'));

這條語句使得ename 字段只能包含字母和數字字元(也就是說沒有空格或者標點符號)。試圖插入或者更新這些資料將導致乙個ora-2290 異常,或者檢查約束的有效性。

regexp_instr 與instr 函式類似。它返回乙個字串中匹配乙個正規表示式的第乙個子串的開始位置。例如:

select regexp_instr('the total is $400 for your purchase.','$[[:digit:]]+')

from dual;

這個查詢返回14,即$400在字串的開始位置。另外還可以指定子串出現的次數;開始搜尋的位置;是返回匹配的位置還是返回匹配之後字元的位置。

regexp_substr 返回匹配乙個正規表示式的子串。雖然結合使用substr 和regexp_instr 及length 也可以實現這一功能,但是使用這個函式卻更為簡單。

select regexp_instr('one,two,three','[^,]*') from dual;

這個查詢返回'one',將第乙個引數看成乙個逗號分隔的列表並返回第乙個逗號之前的所有字元。

regexp_replace 返回初始引數被匹配子串替換之後的結果。例如:

select regexp_replace('the temperature is 23°f',

'([[:digit:]])+°f',

('1'-32)*5/9||'°c')

from dual;

這個查詢將查詢乙個華氏溫度並將其轉換為攝氏度。它將返回:'the temperature is -5°c'。

Qt中正規表示式小研究整理

最早接觸正規表示式是在學習php的時候,要進行字元的匹配和驗證,在學習windows程式設計所用的課本上,正好有乙個章節講正規表示式,所以將所學習到的內容記錄在部落格中 正規表示式的應用方面 驗證 驗證字串是否符合某一些要求 搜尋 提供模式匹配 查詢和替換 使用乙個不同的字串替換所有匹配的字串 字串...

JS中正規表示式

js中正規表示式有幾種不同的使用方法,一些用法是通過字串物件來使用,另外一些通過正規表示式物件使用。一 regexp 正規表示式 的屬性和方法 1 屬性 regexp的例項有幾個唯讀的屬性 global表示是否為全域性匹配,igorecase表示是否忽略大小寫,multiline表示是否為多行匹配,...

PHP中正規表示式

正規表示式一般表示式的形式如下 love 其中位於 定界符之間的部分就是將要在目標物件中進行匹配的模式。為了能夠使使用者更加靈活的的定製模式內容,正規表示式提供了專門的 元字元 所謂元字元就是指那些表示式中具有特殊意義的字元,可以用來規定其前導字元 即在元字元前面的字元 在目標物件中的出現模式。較為...