欢迎来到代码驿站!

Oracle

当前位置:首页 > 数据库 > Oracle

在Oracle中使用正则表达式

时间:2022-09-03 10:56:02|栏目:Oracle|点击:

从10g开始,可以在查询中使用

一、正则表达式:

1、REGEXP_LIKE :匹配

REGEXP_LIKE(source_string, pattern[, match_parameter]):返回满足匹配模式的字符串

相当于增强的like函数。

  • Source_string指定源字符表达式;
  • pattern指定规则表达式;
  • match_parameter指定默认匹配操作的文本串。

其中 match_parameter参数都是可选的。

match_parameter的取值如下:

  • 'c' 说明在进行匹配时区分大小写(缺省值);
  • 'i' 说明在进行匹配时不区分大小写;
  • 'n' 允许使用可以匹配任意字符的操作符;
  • 'm' 将x作为一个包含多行的字符串。
  • ‘x’ 忽略空白字符。
SELECT * FORM. tKHXX where REGEXP_LIKE(SJHM, '^[1]{1}[35]{1}[[:digit:]]{9}$'

2、REGEXP_REPLACE :替换

REGEXP_REPLACE(source_string,pattern,replace_string,position,occurtence,match_parameter):字符串替换函数
相当于增强的replace函数。

  • Source_string指定源字符表达式;
  • pattern指定规则表达式;
  • replace_string指定用于替换的字符串;
  • position指定起始搜索位置;
  • occurtence指定替换出现的第n个字符串;
  • match_parameter指定默认匹配操作的文本串
select length(regexp_replace('123-345-566', '[^-]', '')) from dual;

3、REGEXP_INSTR :位置

REGEXP_INSTR(source_string, pattern[, start_position[, occurrence[, return_option[, match_parameter]]]])该函数查找 pattern ,并返回该模式的第一个位置。
您可以随意指定您想要开始搜索的 start_position。

  • occurrence 参数默认为 1,除非您指定您要查找接下来出现的一个模式。
  • return_option 的默认值为 0,它返回该模式的起始位置;值为 1 则返回符合匹配条件的下一个字符的起始位置。
SELECT REGEXP_INSTR ('hello itmyhome', 'e') FROM dual

4、REGEXP_SUBSTR :提取

REGEXP_SUBSTR(source_string, pattern[,position [, occurrence[, match_parameter]]]):返回匹配模式的子字符串。

相当于增强的substr函数。

  • Source_string指定源字符表达式;
  • pattern指定规则表达式;
  • position指定起始搜索位置;
  • occurtence指定替换出现的第n个字符串;
  • match_parameter指定默认匹配操作的文本串。

其中position,occurtence,match_parameter参数都是可选的。

SELECT REGEXP_SUBSTR ('hello my phone is 520 ', '[0-9]+') FROM dual; --520

5、REGEXP_COUNT (Oracle 11g 新增) :计数

REGEXP_COUNT (source_char, pattern [, position [, match_parameter]])统计字符串出现的次数

select REGEXP_COUNT('123-345-566', '-') from dual;

二、预定义的 POSIX 字符簇

[:alpha:]:字母字符

[:lower:]:小写字母字符

[:upper:]:大写字母字符

[:digit:]:数字

[:alnum:]:字母数字字符

[:space:]:空白字符(禁止打印),如回车符、换行符、竖直制表符和换页符

[:punct:]:标点字符

[:cntrl:]:控制字符(禁止打印)

[:print:]:可打印字符

上一篇:Oracle数据库之PL/SQL使用流程控制语句

栏    目:Oracle

下一篇:没有了

本文标题:在Oracle中使用正则表达式

本文地址:http://www.codeinn.net/misctech/212688.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有