oracle正則表達式匹配手機特號


     Oracle10g提供了在查詢中使用正則表達的功能,它是通過各種支持正則表達式的函數在where子句中實現的。本文將簡單的介紹oracle正則表達式常用語法,並通過一個手機特號匹配的例子演示正則表達式的使用。

  • oracle正則表達常用語法        

   定位元字符

元字符

說明

^

使表達式定位至一行的開頭

$

使表達式定位至一行的末尾

  量詞或重復操作符

量詞

說明

*

匹配 0 次或更多次

?

匹配 0 次或 1 次

+

匹配 1 次或更多次

{m}

正好匹配 m

{m,}

至少匹配 m

{m, n}

至少匹配 m 次但不超過 n

 POSIX 字符類

字符類

說明

[:alpha:]

字母字符

[:lower:]

小寫字母字符

[:upper:]

大寫字母字符

[:digit:]

數字

[:alnum:]

字母數字字符

[:space:]

空白字符(禁止打印),如回車符、換行符、豎直制表符和換頁符

[:punct:]

標點字符

[:cntrl:]

控制字符(禁止打印)

[:print:]

可打印字符

 模式匹配

項目

說明

\n

n為一個 1 到 9 之間的數字,反斜線匹配之前的用括號括起來的第n個子表達式。

()

子表達式。

[]

字符列表

REGEXP_LIKE 函數

語法

說明

REGEXP_LIKE(source_string, pattern
[, match_parameter])

source_string 支持字符數據類型(CHAR、VARCHAR2、CLOB、NCHAR、NVARCHAR2 和 NCLOB,但不包括 LONG)。pattern 參數是正則表達式的另一個名稱。match_parameter 允許可選的參數(如處理換行符、保留多行格式化以及提供對區分大小寫的控制)。

 

  • oracle正則表達匹配手機特號   

     尾號四連號:([0123456789])\1\1\1$   如:13498212222、13613431111

                     sql:select * from tb_phone where REGEXP_LIKE(phone_no,'([0123456789])\1\1\1$')

     尾號四連順:(0123|1234|2345|3456|4567|5678|6789)$  如:13576531234、13623432345

     尾號倒四連順:(9876|8765|7654|6543|5432|4321|3210)$  如:13512329876、13676987654

     尾號00XX:00[[:digit:]][[:digit:]]$  如:13512320023、13512320035

     尾號AABB:([[:digit:]])\1([[:digit:]])\2$  如:13567545566

     尾號ABAB:([[:digit:]]{2})\1$   如:13545341212

     尾號AAAB:([[:digit:]])\1\1[[:digit:]]$  如:13564326667


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM