精华内容
下载资源
问答
  • 本篇文章是对oracle正则表达式regexp_like的用法进行了详细的分析介绍,需要的朋友参考下
  • 文章目录1 概述2 匹配规则3 正则函数3.1 regexp_substr()3.2 regexp_instr()3.3 regexp_replace()3.4 regexp_like() 1 概述 1. 作用:处理字符时,很强大 2. 分类:与下列相似,当功能更加强大('支持正则表达式')...

    1 概述

    1. 作用:处理字符时,很强大
    
    2. 分类:与下列相似,但功能更加强大('支持正则表达式'(1) regexp_like   : 同 like 功能相似(模糊 '匹配'(2) regexp_instr  : 同 instr 功能相似(返回字符所在 '下标'(3) regexp_substr : 同 substr 功能相似('截取' 字符串)
       (4) regexp_replace: 同 replace 功能相似( '替换' 字符串)
       -- 使用了 '正则表达式' 替代了老的 '百分比 %' 和 '通配符 _'
       -- 上述 四个 函数,正则用法相似,知晓一个,其它皆可参考
    

    2 匹配规则

    主要的类型如下:

    分组元字符描述
    特殊的\转义字符。“\n”:换行,"\\n":文本 ‘\n’
    .匹配除转义字符外的 任何单字符
    定位元字符^使表达式定位至一行的 开头
    $使表达式定位至一行的 末尾
    量词或重复操作符*匹配 0 次或多次(任意次数)
    ?匹配 0 次或 1 次(最多 1 次)
    +匹配 1 次或多次(至少 1 次)
    {m}正好 匹配 m 次
    {m, }至少 匹配 m 次
    {m, n}匹配 m 到 n
    表达式的替换和分组|替换,通常和分组操作符 () 一起使用
    () 分组,并且 的关系
    [char]字符列表,或者 的关系
    预定义的 posix 字符类[:alpah:]任何字母
    [:lower:]任何小写字母
    [:upper:]任何大写字母
    [:digit:]任何数字,相当于 [0-9]
    [:xdigit:]任何 16 进制的数字,相当于 [0-9a-fA-F]
    [:alnum:]任何字符或数字字符
    [:space:]空白字符,如:回车符,换行符、竖直制表符和换页符
    [:punct:]任何标点符号

    示例:此案例来源于网络,略作修改,挺适合参考的

    1. 查询 value 中以 1 开头 60 结尾的记录并且长度是 7select * from table_name where value like '1____60'; -- 4 个 _
    select * from table_name where regexp_like(value, '1....60');
    
    2. 查询 value 中以 1 开头 60 结尾的记录并且长度是 7 位且全部是数字的记录
       此时,用 like 就不是很好实现了
    select * from table_name where regexp_like(value, '^1[0-9]{4}60$');
    select * from table_name where regexp_like(value, '^1[[:digit:]]{4}60$');
    
    3. 查询 value 中不包含任何数字的记录
    select * from table_name where regexp_like(value, '^[^[:digit:]]+$'); -- [] 内的 ^ 表示 '非'
    
    4. 查询 value 中不是纯数字的记录
    select * from table_name where not regexp_like(value, '^[[:digit:]]+$');
    
    5. 查询以 121b 开头的记录,区分大小写
    select * from table_name where regexp_like(value, '^(12)|^(1b)');
    select * from table_name where regexp_like(value, '^1[2b]');
    
    6. 查询以 121b 开头的记录,不区分大小写
    select * from table_name where regexp_like(value, '^1[2b]', 'i');
    
    7. 查询所有均为 小写字母 或 数字的记录
    select * from table_name where regexp_like(value, '^([a-z]+|[0-9]+)$');
    
    8. 查询包含 空白 的记录
    select * from table_name where regexp_like(value, '[[:space:]]');
    
    9. 查询包含 标点符号 的记录
    select * from table_name where regexp_like(value, '[[:punct:]]');
    

    3 正则函数

    3.1 regexp_substr()

    在这里插入图片描述
    参数解释:

    srcstr    	 : 源字符串 -- source string
    pattern   	 : 正则表达式
    position  	 : 起始位置,默认 1
    occurrence	 : 第几次出现,默认 1(匹配成功的次数,依次递增)
    modifier  	 : 模式('i': 不区分大小写,'c': 区分大小写。 默认 'c')
    subexpression: 含有子表达式 0-9, 默认 0:不含子表达式,1:第一个子表达式,以此类推
    

    例1:

    select regexp_substr('abc,CBA121ABC,cba', ',[^,]+,') rs1, -- ,CBA121ABC,
           regexp_substr('1234567890', '(123)(4(56)(78))', 1, 1, 'i', 1) rs2 -- 123
      from dual;
    

    例2:拆分邮箱

    with temp_email as (
      select 1 user_no, 'a1@qq.com' email from dual union all
      select 2 user_no, 'bb2@sina.com' email from dual union all
      select 3 user_no, 'ccc3@aliyun.com' email from dual
    )
    select t.user_no 用户编号,
           regexp_substr(t.email,'[[:alnum:]]+') 用户名,
           regexp_substr(t.email, '\@[[:alnum:]]+\.[[:alnum:]]+') 邮箱后缀
           -- 两者等同
           -- regexp_substr(t.email,'[a-zA-Z0-9]+') 用户名2,
           -- regexp_substr(t.email, '\@[a-zA-Z0-9]+\.[a-zA-Z0-9]+') 邮箱后缀2
      from temp_email t;
    

    测试结果:

    用户编号	用户名	邮箱后缀
    1		a1		@qq.com
    2		bb2		@sina.com
    3		ccc3	@aliyun.com
    

    例3:匹配固定电话号码和手机号码

    --*************************************************************
    -- 固定电话格式:0开头 + 2到3位任意数字 + '-' + 6到7位任意数字
    -- 手机号码格式:1开头 + 10位任意数字(11位)
    --*************************************************************
    with temp_phone as (
      select 1 user_no, '0755-11112222' phone_no from dual union all
      select 2 user_no, '055-33334444'  phone_no from dual union all
      select 3 user_no, '0755 55556666' phone_no from dual union all
      select 4 user_no, 'AE86-77778888' phone_no from dual union all
      select 5 user_no, '0755-888999'   phone_no from dual union all
      select 6 user_no, '15866668888'   phone_no from dual union all
      select 7 user_no, '015866668888'  phone_no from dual
    )
    select t.user_no 用户编号,
           t.phone_no 联系方式,
           regexp_substr(t.phone_no,'^0[0-9]{2,3}-[0-9]{6,7}') 固定电话,
           regexp_substr(t.phone_no,'^1[0-9]{10}') 手机号码
      from temp_phone t;
    

    测试结果:
    在这里插入图片描述

    3.2 regexp_instr()

    在这里插入图片描述

    参数解释:

    srcstr    	 : 源字符串 -- source string
    pattern   	 : 正则表达式
    position  	 : 起始位置,默认 1
    occurrence	 : 第几次出现,默认 1(匹配成功的次数,依次递增)
    returnparam  : 返回参数对应的下标(0:第一个位置的下标,非0:最后一个位置的下标)
    modifier  	 : 模式('i': 不区分大小写,'c': 区分大小写。 默认 'c')
    subexpression: 含有子表达式 0-9, 默认 0:不含子表达式,1:第一个子表达式,以此类推
    

    示例:

    select regexp_instr('1,23,456,7890', '[0-9]+', 1, 3) 匹配到的第一个字符下标, -- 6
           regexp_instr('1,23,456,7890', '[0-9]+', 1, 3, 1) 最后一个字符后一位的下标, -- 9
           regexp_instr('1234567890', '(123)(4)(56)(78)', 1, 1, 0, 'i', 4) 匹配到的第四个子表达式 -- 7
      from dual;
    

    查询结果:

    匹配到的第一个字符下标	最后一个字符后一位的下标	匹配到的第四个子表达式
    6						9						7
    

    3.3 regexp_replace()

    在这里插入图片描述

    示例:

    with temp_strings as (   
      select 'abc123' str from dual union all
      select '123abc' str from dual union all
      select 'a1b2c3' str from dual
    )   
    select t.str 源字符串,
           regexp_replace(t.str, '[0-9]', '', 1) 无数字字符串
      from temp_strings t;
    

    查询结果:

    	源字符串	无数字字符串
    1	abc123	abc
    2	123abc	abc
    3	a1b2c3	abc
    

    3.4 regexp_like()

    在这里插入图片描述

    示例:

    with temp_strings as (   
      select 'abc123' str from dual union all
      select '12abcd' str from dual union all
      select 'a1b2c3' str from dual
    )   
    select t.str 连续的三个数字字符
      from temp_strings t
     where regexp_like(t.str, '[0-9]{3}');
    

    查询结果:

    连续的三个数字字符
    abc123
    
    展开全文
  • RegExp_Like

    2020-08-04 11:37:00
    select * from table where regexp_like(字段名,'条件'); if regexp_like(str,'^[0-9\.]+$') --只包含数字0-9,,小数点. --oracle判断字段是否是纯数字 (四种写法结果一样) select * from table where regexp_...
    --基本用法,是否包含某字符串 =like %36%
    select * from table where  regexp_like(字段名,'条件');
     
    if regexp_like(str,'^[0-9\.]+$')  --只包含数字0-9,,小数点.
     
    --oracle判断字段是否是纯数字 (四种写法结果一样)
    select * from table where regexp_like(loginid,'^[0-9]+[0-9]$');
    select * from table where regexp_like(loginid,'^[0-9]+$');   --'+' 匹配前面的子表达式一次或多次。
    select * from table where regexp_like(loginid,'^[[:digit:]]+$');
    select * from table where  not regexp_like(loginid,'[^0-9]');  --^表示排除
     
    --不是0-9纯数字 (二种写法结果一样)
    select * from table where  regexp_like(loginid,'[^0-9]');  --^表示排除
    select * from table where not regexp_like(loginid,'^[[:digit:]]+$');
     
    --判断字段中是否只包含0-9,-字符(二种写法结果一样)
    select * from table where regexp_like(APPLICATION,'^[0-9]|[-]$');  --'|' 指明两项之间的一个选择。相当于or 例子'^([a-z]+|[0-9]+)$'表示所有小写字母或数字组合成的字符串。
    select * from table where  regexp_like(APPLICATION,'[0-9-]');
     
    --判断字段中是否只包含0-9,-字符, 或者空格 (五种写法结果一样)
    select * from table where regexp_like(APPLICATION,'^[0-9]|[-]$') or regexp_like(APPLICATION,'^[ ]$');
    select * from table where regexp_like(APPLICATION,'^[0-9]|[-]$|^[ ]$');  
    select * from table where regexp_like(APPLICATION,'(^[0-9]|[-]$)|(^[ ]$)'); --'( )' 标记一个子表达式的开始和结束位置
    select * from table where regexp_like(APPLICATION,'^[0-9]|[-]|[ ]$');
    select * from table where  regexp_like(APPLICATION,'[0-9- ]'); 

    举例:

    select count(*) from table where itcode="10112255" and regexp_like(cr0024_003,'(营业|正常在业|开业)')

    展开全文
  • Oracle中RegExp_Like 正则表达式基本用法

    万次阅读 多人点赞 2019-11-06 10:56:00
    select * from k_micfo where regexp_like(loginid,'36'); if regexp_like(str,'^[0-9\.]+$') --只包含数字0-9,,小数点. --oracle判断字段是否是纯数字 (四种写法结果一样) select * from k_micfo where regex.....
    --基本用法,是否包含某字符串 =like %36%
    select * from k_micfo where  regexp_like(loginid,'36');
    
    if regexp_like(str,'^[0-9\.]+$')  --只包含数字0-9,,小数点.
    
    --oracle判断字段是否是纯数字 (四种写法结果一样)
    select * from k_micfo where regexp_like(loginid,'^[0-9]+[0-9]$');
    select * from k_micfo where regexp_like(loginid,'^[0-9]+$');   --'+' 匹配前面的子表达式一次或多次。
    select * from k_micfo where regexp_like(loginid,'^[[:digit:]]+$');
    select * from k_micfo where  not regexp_like(loginid,'[^0-9]');  --^表示排除
    
    --不是0-9纯数字 (二种写法结果一样)
    select * from k_micfo where  regexp_like(loginid,'[^0-9]');  --^表示排除
    select * from k_micfo where not regexp_like(loginid,'^[[:digit:]]+$');
     
    --判断字段中是否只包含0-9,-字符(二种写法结果一样)
    select * from k_micfo where regexp_like(APPLICATION,'^[0-9]|[-]$');  --'|' 指明两项之间的一个选择。相当于or 例子'^([a-z]+|[0-9]+)$'表示所有小写字母或数字组合成的字符串。
    select * from k_micfo where  regexp_like(APPLICATION,'[0-9-]');
     
    --判断字段中是否只包含0-9,-字符, 或者空格 (五种写法结果一样)
    select * from k_micfo where regexp_like(APPLICATION,'^[0-9]|[-]$') or regexp_like(APPLICATION,'^[ ]$');
    select * from k_micfo where regexp_like(APPLICATION,'^[0-9]|[-]$|^[ ]$');  
    select * from k_micfo where regexp_like(APPLICATION,'(^[0-9]|[-]$)|(^[ ]$)'); --'( )' 标记一个子表达式的开始和结束位置
    select * from k_micfo where regexp_like(APPLICATION,'^[0-9]|[-]|[ ]$');
    select * from k_micfo where  regexp_like(APPLICATION,'[0-9- ]'); 

    经测试oracle中的RegExp_Like跟标准正则表达式用法基本一致,”|“ 就是or的意思。

    附:常用实用正则表达式与运算符含义

    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:]]');

     

    正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。

    用户名:/^[a-z0-9_-]{3,16}$/

    密码:/^[a-z0-9_-]{6,18}$/

    十六进制值:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/

    电子邮箱:/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/

    URL:/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/

    IP 地址:/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/

    HTML 标签:/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/

    Unicode编码中的汉字范围:/^[u4e00-u9fa5],{0,}$/

    匹配中文字符的正则表达式: [\u4e00-\u9fa5]
    评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

    匹配双字节字符(包括汉字在内):[^\x00-\xff]
    评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

    匹配空白行的正则表达式:\n\s*\r
    评注:可以用来删除空白行

    匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?|<.*? />
    评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

    匹配首尾空白字符的正则表达式:^\s*|\s*$
    评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

    匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
    评注:表单验证时很实用

    匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
    评注:网上流传的版本功能很有限,上面这个基本可以满足需求

    匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
    评注:表单验证时很实用

    匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
    评注:匹配形式如 0511-4405222 或 021-87888822

    匹配腾讯QQ号:[1-9][0-9]{4,}
    评注:腾讯QQ号从10000开始

    匹配中国大陆邮政编码:[1-9]\d{5}(?!\d)
    评注:中国大陆邮政编码为6位数字

    匹配身份证:\d{15}|\d{18}
    评注:中国大陆的身份证为15位或18位

    匹配ip地址:\d+\.\d+\.\d+\.\d+
    评注:提取ip地址时有用

    匹配特定数字:
    ^[1-9]\d*$    //匹配正整数
    ^-[1-9]\d*$  //匹配负整数
    ^-?[1-9]\d*$  //匹配整数
    ^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)
    ^-[1-9]\d*|0$  //匹配非正整数(负整数 + 0)
    ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$  //匹配正浮点数
    ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
    ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
    ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$  //匹配非负浮点数(正浮点数 + 0)
    ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0)
    评注:处理大量数据时有用,具体应用时注意修正

    匹配特定字符串:
    ^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
    ^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
    ^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
    ^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
    ^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串

    去除精度纬度中非浮点数

    select jd,wd from xx_xa_xsczaqpc t where t.id not in  (

    select id from xx_xa_xsczaqpc where regexp_like(jd,'^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$')) ;

    是双小数点的数

    select xx_jbxx_id,jd,wd from xx_xa_xsczaqpc t where regexp_like(jd,'^[1-9]\d*\.\d*\.\d*[1-9]\d*$')

    展开全文
  • REGEXP_LIKE()函数 在MySQL中,REGEXP_LIKE()函数用于确定字符串是否匹配正则表达式。 语法: REGEXP_LIKE(expr, pat[, match_type]) 参数说明: 其中expr是输入字符串,pat是测试字符串的正则表达式。 match...

    REGEXP_LIKE()函数

    在MySQL中,REGEXP_LIKE()函数用于确定字符串是否匹配正则表达式。


    语法:

    REGEXP_LIKE(expr, pat[, match_type])

    参数说明:

    • 其中expr是输入字符串,pat是测试字符串的正则表达式。
    • match_type参数是可选的允许您精炼正则表达式。

     返回值:

    如果字符串与提供的正则表达式匹配,函数返回1;如果不匹配,返回0。

    REGEXP_REPLACE()函数

    语法:

    REGEXP_REPLACE(source, pattern, replace_string, occurrence)

    参数说明:

    • source: string类型,要替换的原始字符串
    • pattern: string类型常量,要匹配的正则模式,pattern为空串时抛异常
    • replace_string:string,将匹配的pattern替换成的字符串
    •  occurrence: bigint类型常量,必须大于等于0
      • 大于0:表示将第几次匹配替换成replace_string
      • 等于0:表示替换掉所有的匹配子串
      • 其它类型或小于0抛异常

    返回值:

    将source字符串中匹配pattern的子串替换成指定字符串后返回,当输入source, pattern,

    occurrence参数为NULL时返回NULL,若replace_string为NULL且pattern有匹配,返回NULL

    replace_string为NULL但pattern不匹配,则返回原串。

    附表:

    正则表达式

     

     

     

     

    展开全文
  • 1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与SUBSTR的功能相似 4,REGEXP_REPLACE :与REPLACE的功能相似 它们在用法上与Oracle SQL 函数LIKE、INSTR、...
  • orcl regexp_like 的用法

    2021-06-17 07:01:40
    oracle10g以上支持正则表达式的函数主要有下面四个:1、REGEXP_LIKE :与LIKE的功能相似2、REGEXP_INSTR :与INSTR的功能相似3、REGEXP_SUBSTR :与SUBSTR的功能相似4、REGEXP_REPLACE :与REPLACE的功能相似POSIX ...
  • Oracle中REGEXP_LIKELIKE的区别

    千次阅读 2019-06-26 17:16:40
    Oracle中REGEXP_LIKELIKE的区别全部测试数据 SQL> SELECT * FROM test_reg_like; A匹配字母A的 SQL> SELECT 2 * 3 FROM 4 test_reg_like 5 WHERE 6 REGEXP_LIKE(a, 'A'); A匹配字母A的 (大小写不敏感...
  • 本人是个菜鸟,现在想实现通过select语句查询处多个值作为REGEXP_LIKE的表达式,实现like多个条件(多条件的模糊查询)。请高手指教。 select * from tb_org_unitrelation t where REGEXP_LIKE(t.c_path_code,...
  • Oracle regexp_like使用

    千次阅读 2019-12-28 19:51:14
    Oracle/PLSQL 中的REGEXP_LIKE条件的语法是: REGEXP_LIKE ( expression, pattern [, match_parameter ] ) 参数 expression - 字符表达式,例如列或字段。它可以是VARCHAR2,CHAR,NVARCHAR2,NCHAR,CLOB或...
  • 组织表信息查询结果 1.组织表中orule字段包含104592和104607的所有组织,一般用or like即可 select * from waf_ac_organ2biz where orule like...select * from waf_ac_organ2biz where regexp_like (orule,'104..
  • oracle中likeregexp_like

    千次阅读 2019-05-21 09:48:20
    最近使用oracle中发现连续使用多个not like(超过4个之后)就查询不出结果,但是也不报错,比如:select * from a not like ‘%1%’ and a not like ‘%2%’ and a not like ‘%3%’ and a not like ‘%4%’ and a ...
  • 原始SQL SELECT NVL(MAX(TO_NUMBER(REPLACE(REPLACE...说明:aa表只有几千记录,通过REGEXP_LIKE正则过滤时需要近40秒,查询结果严重不符合预期 与研发沟通后,0-9这里是动态的10个数字,建议修改为如下过滤条件 优化后
  • oracle里like多个关键字(regexp_like)

    千次阅读 2021-03-03 17:43:48
    oracle里like多个关键字 [regexp_like] 查询name多个关键字匹配的人: 汉、雷、范、奇、尚 regexp_like(字段名,'值1|值2|值3|值4|值5……') //全模糊匹配 regexp_like(字段名,'^(值1|值2|值3|值4|值5……)') //右...
  • 正则表达式函数REGEXP_LIKE(x,pattern)

    千次阅读 2021-10-24 16:01:00
    1.REGEXP_LIKE(x,pattern)函数 REGEXP_LIKE(x,pattern)函数的功能类似于like运算符, 用于判断源字符串是否匹配或包含指定模式的子串。 x指定源字符串, pattern是正则表达式字符串。该函数只可用在where子句中。 ...
  • create or replace function regexp_like(str character varying,reg character varying) returns boolean language plpgsql as $function$ declare v_match text; begin select regexp_matches(str, reg) ...
  • Regexp_Like函数

    2020-08-01 10:41:27
    我们在日常工作中,需要定期清理一些表,本来要开发一些自动程序或者触发器之...and regexp_like (table_name,'^(TB_)(.{5})[_][SI][_](\d{8})$'); 以上脚本可以匹配到 TB_开头+5个任意字符+下划线+S或者I+下划线+8个
  • Oracle 正则表达式 REGEXP_LIKE

    千次阅读 2020-05-11 18:03:49
    regexp_like(data, '[0-9A-Za-z]') [0-9A-Za-z] : 表示了所有的数值和大小写字母 ① 返回包含数值或字母的结果 select * from v where regexp_like(data, '[0-9A-Za-z]'); --返回包含数值或字母的结果 ②返回不是...
  • 百分之八十的人都喜欢用LIKE,语法简单,正则表达式,等等优点。 下面通过几个简单的例子来对比一下,常用的模糊查询。 首先准备两张表 CREATETABLETEST1ASSELECT*FROMSYSOBJECTS; ...
  • REGEXP_LIKE

    2017-11-04 15:11:58
    1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与SUBSTR的功能相似 4,REGEXP_REPLACE :与REPLACE的功能相似 它们在用法上与Oracle SQL 函数LIKE、INSTR、...
  • oracle中regexp_like 的使用 今天碰到个问题,关于存储多选框的问题,目前存储多选框值是存储到一个字段中,比如:1,2,3。现在有个问题,如果查询1,2 的数据的时候,一般的写法是 like ‘%1%’ or like ‘%2%’ ,...
  • regexp_like 正则表达式函数查询

    千次阅读 2019-08-20 14:12:54
    这就用到了 regexp_like 正则表达式函数查询,regexp_like适用于查询某一列包含多个字符串的时候 例1: select * from tmp_table t where regexp_like(t.name,‘Bob|Jane|marry’ ) (查询tmp_tabl...
  • About Oracle REGEXP_LIKE

    2020-03-23 15:37:13
    REGEXP_LIKE(字段名, ‘(匹配串1|匹配串2|…)’) ; //全模糊匹配 REGEXP_LIKE(字段名, ‘^(匹配串1|匹配串2|…)’) ; //右模糊匹配 REGEXP_LIKE(字段名, ‘(匹配串1|匹配串2|…)$’) ; //左模糊匹配 CREATE OR ...
  • 正则表达式regexp_like的用法详解

    千次阅读 2020-10-03 15:28:25
    正则表达式regexp_like的用法详解ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与SUBSTR的功能相似 4,REGEXP_...
  • oracle模糊查询中的regexp_like嵌套子查询用法 regexp_like一般用于模糊查询某一列时包含多个查询条件 需求1:在用户表中查询出账号包含650000和230000的用户。 select * from sys_user where regexp_like(account,'...
  • Oracle中的正则替换【REGEXP_REPLACE】和正则likeREGEXP_like】 下面图片中有三种“加瓦”,Java,Java,JAVA select regexp_replace(city,'java','苍井空',1,0,'i') from lidw li ...
  • select d1 from t1 where regexp_like(d1,’^[0-9a-zA-Z]+$’) +:表示匹配前面的字表达式1次或多次(*号表示至少匹配0次) ^:匹配输入字符串开始的位置,对应like中的like ’xxx%’,即没有前模糊查询(^在[]中...
  • REGEXP_LIKE(card_keywords,#{keywords},'i') 函数第三项为 match_parameter,匹配选项。取值范围:i:大小写不敏感;C:大小写敏感;n:点号.不匹配换行符号;m:多行模式;x:扩展模式,忽略正则表达式中的空白字符。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,708
精华内容 11,083
关键字:

regexp_like