oracle正規表示式記錄0402

Nalternative發表於2011-04-02

--查詢第一個字母
SELECT  REGEXP_SUBSTR('ADYIYT58FTUER6875E68','[[:ALPHA:]]',1,1) FROM DUAL
/
--含字母的資訊
SELECT  1 FROM DUAL WHERE REGEXP_LIKE('JHBLHJ8078 ',lower('[[:ALPHA:]]'))
/
--匹配號碼前7位
SELECT *FROM MOBILE MC WHERE REGEXP_LIKE('18736093913',SUBSTR(MC.BEGINCODE,1,7))
/
--和上述一樣
SELECT *FROM MOBILE MC WHERE  '18736099999'>=MC.BEGINCODE AND '18736099999'<=MC.ENDCODE
/
--取學生姓名、系統內學生欄位為:NAME       VARCHAR2(20),目前判斷:超過5個字自動擷取
SELECT  REGEXP_SUBSTR('18736099999##GFHGFK','[^#]+',1,2)  FROM DUAL

--為了防止不小心將程式碼全部變為大寫,增加LOWER 使得程式應用更安全
SELECT  1 FROM DUAL WHERE REGEXP_LIKE('df',LOWER('[[:ALPHA:]]'))
/
SELECT  REGEXP_SUBSTR('18734536099999##GFHGFK',LOWER('[[:DIGIT:]]{11}'))  FROM DUAL

--不是#符合的第二組字串為學生名字
SELECT  SUBSTR(REGEXP_SUBSTR('18736099999###SDAFDSFSDA','[^#|#]+',1,2),1,5)  FROM DUAL
/
--這都有結果?漢字
SELECT 2 FROM DUAL WHERE REGEXP_LIKE('就',LOWER('[[:ALPHA:]]'))
/
SELECT 2 FROM DUAL WHERE REGEXP_LIKE('45F645',LOWER('^[^[:ALPHA:]]+$'))

SELECT 2 FROM DUAL WHERE REGEXP_LIKE('FDG3DFG',LOWER('^[^[:DIGIT:]]+$'))
/
SELECT SUBSTR('19836093913#123456789',REGEXP_INSTR('19836093913#123456789','[#|#|+|+]+',1,1,1),5) FROM DUAL
/

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25323853/viewspace-691545/,如需轉載,請註明出處,否則將追究法律責任。

相關文章