關於oracle正則表達的使用

2021-09-30 16:15:35 字數 1330 閱讀 6978

oracle中的支援正規表示式的函式主要有下面四個:

1,regexp_like :與like的功能相似

2,regexp_instr :與instr的功能相似

3,regexp_substr :與substr的功能相似

4,regexp_replace :與replace的功能相似

它們在用法上與oracle sql 函式like、instr、substr 和replace 用法相同,

但是它們使用posix 正規表示式代替了老的百分號(%)和萬用字元(_)字元。

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

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

'

匹配輸入字串的結尾位置。如果設定了 regexp 物件的 multiline 屬性,則 $ 也匹配 '\n' 或 '\r'。'.' 匹配除換行符之外的任何單字元。'?' 匹配前面的子表示式零次或一次。'+' 匹配前面的子表示式一次或多次。'*' 匹配前面的子表示式零次或多次。'|' 指明兩項之間的乙個選擇。例子'^([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 位置和順序| */

select bcf.classify_code,bcf.classify_name ,bcf.hierarchy_code,length(regexp_replace(bcf.hierarchy_code,'[0-9]',''))-1 

from base_classify bcf

137

特色小店

|3|37|22

38寵物

|2|38|23

40便利店

|3|40|24

41購物中心

|3|41|25

43服裝鞋帽

|3|43|2

Oracle正規表示式使用

類似於jquery的正規表示式,常用的不贅述 1.alphanum 可以匹配0 9 z a a z 2.alpha 可以匹配z a a z 3.digit 可以匹配0 9 4.lower 可以匹配z a 5.upper 可以匹配a z 6.blank 可以匹配空格或tab鍵 7.grah 可以匹配非...

oracle的正規表示式

匹配前面的子表示式零次或多次 指明兩項之間的乙個選擇。例子 a z 0 9 表示所有小寫字母或數字組合成的字串。匹配輸入字串的開始位置,在方括號表示式中使用,此時它表示不接受該字元集合。匹配輸入字串的結尾位置。如果設定了 regexp 物件的 multiline 屬性,則 也匹配 n 或 r 標記乙...

Oracle的正規表示式

特殊字元 匹配輸入字串的開始位置,在方括號表示式中使用,此時它表示不接受該字元集合。匹配輸入字串的結尾位置。如果設定了 regexp 物件的 multiline 屬性,則 也匹配 n 或 r 匹配除換行符 n之外的任何單字元。匹配前面的子表示式零次或一次。匹配前面的子表示式零次或多次。匹配前面的子表...