iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >oracle regexp_like用法与正则
  • 393
分享到

oracle regexp_like用法与正则

2024-04-02 19:04:59 393人浏览 薄情痞子
摘要

oracle中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与SU

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=<出现次数<=n,'{m}'表示出现m次,'{m,}'表示至少
出现m次。
\num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。
字符簇: 
[[:alpha:]] 任何字母。
[[:digit:]] 任何数字。
[[:alnum:]] 任何字母和数字。
[[:space:]] 任何白字符。
[[:upper:]] 任何大写字母。
[[:lower:]] 任何小写字母。
[[:punct:]] 任何标点符号。
[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]。
各种操作符的运算优先级
\转义符
(), (?:), (?=), [] 圆括号和方括号
*, +, ?, {n}, {n,}, {n,m} 限定符
^, $, anymetacharacter 位置和顺序

*/
--创建表
create table fzq
(
id varchar(4),
value varchar(10)
);
--数据插入
insert into fzq values
('1','1234560');
insert into fzq values
('2','1234560');
insert into fzq values
('3','1b3b560');
insert into fzq values
('4','abc');
insert into fzq values
('5','abcde');
insert into fzq values
('6','ADREasx');
insert into fzq values
('7','123 45');
insert into fzq values
('8','adc de');
insert into fzq values
('9','adc,.de');
insert into fzq values
('10','1B');
insert into fzq values
('10','abcbvbnb');
insert into fzq values
('11','11114560');
insert into fzq values
('11','11124560');
--regexp_like
--查询value中以1开头60结束的记录并且长度是7位
select * from fzq where value like '1____60';
select * from fzq where regexp_like(value,'1....60');
--查询value中以1开头60结束的记录并且长度是7位并且全部是数字的记录。
--使用like就不是很好实现了。
select * from fzq where regexp_like(value,'1[0-9]{4}60');
-- 也可以这样实现,使用字符集。
select * from fzq where regexp_like(value,'1[[:digit:]]{4}60');
-- 查询value中不是纯数字的记录
select * from fzq where not regexp_like(value,'^[[:digit:]]+$');
-- 查询value中不包含任何数字的记录。
select * from fzq where regexp_like(value,'^[^[:digit:]]+$');
--查询以12或者1b开头的记录.不区分大小写。
select * from fzq where regexp_like(value,'^1[2b]','i');
--查询以12或者1b开头的记录.区分大小写。
select * from fzq where regexp_like(value,'^1[2B]');
-- 查询数据中包含空白的记录。
select * from fzq where regexp_like(value,'[[:space:]]');
--查询所有包含小写字母或者数字的记录。
select * from fzq where regexp_like(value,'^([a-z]+|[0-9]+)$');
--查询任何包含标点符号的记录。
select * from fzq where regexp_like(value,'[[:punct:]]');

例子:判断姓名是否为空,少于两个字符,包含数字和字母

create or replace
FUNCTioN CheckName(NameStr in VARCHAR2) RETURN integer
As
BEGIN
--符合返回1,不符合返回0
   if(NameStr is null or length(NameStr)<2) then
      return 0;
   else
      if(NameStr like '%未取名%') then
       RETURN 0;
       end if;
       if regexp_like(NameStr,'^([a-z]+|[0-9]+|[A-Z]+)$') then
       return 0;
       end if; 
       return 1;      
   end if;
END CheckName;



摘自:https://www.cnblogs.com/einyboy/arcHive/2012/08/01/2617606.html
您可能感兴趣的文档:

--结束END--

本文标题: oracle regexp_like用法与正则

本文链接: https://www.lsjlt.com/news/49009.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle regexp_like用法与正则
    ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与SU...
    99+
    2022-10-18
  • Oracle REGEXP_LIKE模糊查询用法例子
    目录1、函数介绍2、使用此函数不区分大小写2-1、LIKE 函数2-2、REGEXP_LIKE 函数3、多条件3-1、多个OR条件时,LIKE函数就不能满足需求了。3-2、AND :既有A又有B3-3、检索以某个字符串开...
    99+
    2022-11-19
    oracle regexp_like模糊查询 oracle模糊查询like语句 Oracle模糊查询
  • jmeter正则表达式提取器的用法与正则详解
    我们再使用jmeter请求接口时,碰到一些业务流程性的接口改怎么办,比如,我一个发布内容的接口需要用到登录接口返回的token加到请求上去才能发布内容,那在jmeter上该是如何实现...
    99+
    2022-11-13
  • oracle中sql 正则写法详解
    目录在oracle 10g及以下版本中,可以使用POSIX扩展来进行正则匹配Oracle 11g及以上版本是否走索引Oracle中使用正则表达式需先使用REGEXP_LIKE函数来匹配字符串。正则表达式的语法与一般正则表...
    99+
    2023-04-03
    oracle sql 正则 oracle sql 正则怎么写
  • oracle中sql正则写法详解
    目录在Oracle 10g及以下版本中,可以使用POSIX扩展来进行正则匹配Oracle 11g及以上版本是否走索引Oracle中使用正则表达式需先使用REGEXP_LIKE函数来匹...
    99+
    2023-05-14
    oracle sql 正则 oracle sql 正则怎么写
  • 正则表达式RegExp语法与用法详解
    目录正则表达式的定义和用途创建正则表达式方式一:使用构造函数创建方式二:使用字面量创建正则表达式的语法匹配字符简写模式修正符贪婪匹配断言正则表达式的使用搜索第一个符合条件的字符串 s...
    99+
    2022-11-13
  • Oracle正则表达式怎么用
    这篇文章给大家分享的是有关Oracle正则表达式怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。oracle正则表达式 ORACLE中的支持正则表达式的函数主要有下面四个: ...
    99+
    2022-10-18
  • 【1】python-正则表达式语法规范与
      2018-08-24 21:26:14 【说明】:该文主要为了随后复习和使用备查,由于做了word文档笔记,所以此处博文没有怎么排版,没放代码,以插入图片为主,   一、正则表达式之特殊字符     注意: 以下...
    99+
    2023-01-30
    语法 正则表达式 python
  • Oracle中正则表达式怎么用
    小编给大家分享一下Oracle中正则表达式怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Oracle使用正则表达式离不开这...
    99+
    2022-10-18
  • oracle中如何使用正则函数
    oracle中如何使用正则函数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用这些函数可以在字符串中搜索字符模式。例如,假设...
    99+
    2022-10-18
  • 在Oracle中使用正则表达式
    目录一、正则表达式:1、REGEXP_LIKE :匹配2、REGEXP_REPLACE :替换3、REGEXP_INSTR :位置4、REGEXP_SUBSTR :提取5、R...
    99+
    2022-11-13
  • Python正则表达式中group与groups的用法详解
    目录1 .group函数1.1 返回整个匹配结果1.2 返回指定分组的匹配结果1.3 处理没有匹配结果的情况2. groups函数3. group和groups的使用场景在Pytho...
    99+
    2023-02-13
    Python group与groups
  • python正则表达式之re.match()与re.search()的用法及区别
    目录1、re.match()的用法2、re.search()的用法3、re.match()与re.search()的区别1、re.match()的用法 re.match()方法是从起...
    99+
    2022-11-11
  • php 正则的用法是什么
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php正则的使用函数描述preg_filter执行一个正则表达式搜索和替换preg_grep返回匹配模式的数组条目preg_last_error返回最后一个PCRE正则执...
    99+
    2014-08-02
    php 正则
  • python正则表达式的用法
    本篇内容介绍了“python正则表达式的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简单模式 我们...
    99+
    2022-10-18
  • python正则表达式re.group()用法
    目录re.group()用法re.group()用法 在正则表达式中,re.group()方法是用来提取出分组截获的字符串,匹配模式里的括号用于分组。 举例说明: #!/usr/bi...
    99+
    2022-11-11
  • 正则表达式用法详解
    正则表达式之基本概念 在我们写页面时,往往需要对表单的数据比如账号、身份证号等进行验证,而最有效的、用的最多的便是使用正则表达式来验证。那什么是正则表达式呢? 正则表达式(Regul...
    99+
    2022-11-12
  • python正则-re的用法详解
    Python中的re模块是用来进行正则表达式操作的工具包。re模块提供了很多函数和方法,用于对字符串进行匹配、查找、替换等操作。1. re.match(pattern, string, flags=0)从字符串的起始位置开始匹配patt...
    99+
    2023-08-11
    Python
  • PHP正则模式修正符的使用方法
    小编给大家分享一下PHP正则模式修正符的使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!修正符i进行匹配时不区分大小写,//如:"/abc/i&q...
    99+
    2023-06-14
  • SQL正则表达式及mybatis中使用正则表达式的方法
    小编给大家分享一下SQL正则表达式及mybatis中使用正则表达式的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作