ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle正则表达式记录0402

oracle正则表达式记录0402

原创 Linux操作系统 作者:Nalternative 时间:2011-04-02 11:24:07 0 删除 编辑

--查找第一个字母
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/,如需转载,请注明出处,否则将追究法律责任。

上一篇: oracle 记录0402
下一篇: 导出ddl定义.sql
请登录后发表评论 登录
全部评论

注册时间:2011-02-09

  • 博文量
    123
  • 访问量
    175059