REGEXP_INSTR函数让你搜索一个正則表達式模式字符串。

函数使用输入字符集定义的字符进行字符串的计算。

它返回一个整数,指示開始或结束匹配的子位置。这取决于return_option參数的值。假设没有找到匹配。则函数返回0。

语法

Oracle数据库中的REGEXP_INSTR函数的语法是:

REGEXP_INSTR (source_char, pattern [, position [, occurrence [, return_option [, match_parameter ] ] ]  ] )

參数

source_char

搜索值的字符表达式,能够是不论什么数据类型CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB或NCLOB的。

pattern

正則表達式

Value Description
^ Matches the beginning of a string. If used with a match_parameter of ‘m’, it matches the start of a line anywhere within expression.
$ Matches the end of a string. If used with a match_parameter of ‘m’, it matches the end of a line anywhere within expression.
* 匹配零个或多个.
+ 匹配一个或多个出现.
? 匹配零次或一次出现.
. 匹配不论什么字符。除了空.
| Used like an "OR" to specify more than one alternative.
[ ] Used to specify a matching list where you are trying to match any one of the characters in the list.
[^ ] Used to specify a nonmatching list where you are trying to match any character except for the ones in the list.
( ) Used to group expressions as a subexpression.
{m} Matches m times.
{m,} Matches at least m times.
{m,n} Matches at least m times, but no more than n times.
\n n is a number between 1 and 9. Matches the nth subexpression found within ( ) before encountering \n.
[..] Matches one collation element that can be more than one character.
[::] Matches character classes.
[==] Matches equivalence classes.
\d 匹配一个数字字符.
\D 匹配一个非数字字符.
\w 匹配包含下划线的不论什么单词字符.
\W 匹配不论什么非单词字符.
\s 匹配不论什么空白字符,包含空格、制表符、换页符等等.
\S 匹配不论什么非空白字符.
\A Matches the beginning of a string or matches at the end of a string before a newline character.
\Z Matches at the end of a string.
*? Matches the preceding pattern zero or more occurrences.
+? Matches the preceding pattern one or more occurrences.
?? Matches the preceding pattern zero or one occurrence.
{n}? Matches the preceding pattern n times.
{n,}?

Matches the preceding pattern at least n times.
{n,m}?

Matches the preceding pattern at least n times, but not more than m times.

position

可选。

搜索在字符串中的開始位置。假设省略。则默觉得1。这是字符串中的第一个位置。

occurrence

可选。它是模式字符串中的第n个匹配位置。假设省略,默觉得1。

return_option

可选 指定Oracle返回的位置:

假设指定0,那么Oracle将返回出现的第一个字符的位置。这是默认的。

假设指定1,则Oracle返回字符之后发生的位置。

match_parameter

可选。它同意你改动REGEXP_INSTR功能匹配的行为。

它能够是以下的组合:

Value Description
‘c’ 区分大写和小写的匹配.
‘i’ 不区分大写和小写的匹配.
‘n’ Allows the period character (.) to match the newline character. By default, the period is a wildcard.
‘m’ expression is assumed to have multiple lines, where ^ is the start of a line and $ is the end of a line, regardless of the position of those characters in expression. By default, expression is assumed to be a single line.
‘x’ Whitespace characters are ignored. By default, whitespace characters are matched like any other character.

Examples 匹配单个字符

以下看一个最简单的情况。找到字符串中的第一个”e”字的位置。

SELECT REGEXP_INSTR ('hello itmyhome', 'e')
FROM dual; -- Result: 2

以下这个样例给出一个字符串。 “1”为開始位置 “2”是搜索第二个匹配的,”0”是return_option 返回出现的第一个字符位置

“c”是区分大写和小写 ,所以将返回13

SELECT REGEXP_INSTR ('my is itMyhome', 'm', 1, 2, 0, 'c')
FROM dual; -- Result: 13

Examples 匹配多个字符

我们将使用REGEXP_INSTR函数来匹配多字符模式。

SELECT REGEXP_INSTR ('World filled with love', 'with', 1, 1, 0, 'i')
FROM dual;

这个样例将字符串中返回’with’的第一次出现,它将匹配一个词组。

我们能够改变搜索的開始位置,以便我们运行搜索从字符串的中间開始。

For example:

SELECT REGEXP_INSTR ('my name is itmyhome', 'my', 10, 1, 0, 'i')
FROM dual;

这个样例将開始搜索”my”在字符串中的位置10。

在这样的情况下,在搜索之前。它会跳过字符串中的前9个字符。

Examples 匹配多个备选

以下的样例,我们将使用 | 模式。

该|模式用于像一个”或”指定多个替代方案。

For example:

SELECT REGEXP_INSTR ('Itmyhome', 'a|i|o|e|u')
FROM dual; -- Result: 6

这个样例将返回6,由于它是搜索的第一个元音(a,i,o,e或u)字符串。由于我们没有指定match_parameter值时,

REGEXP_INSTR函数将运行区分大写和小写的搜索,这意味着在”Itmyhome”的’I’将不匹配。

作者:itmyhome

Oracle的REGEXP_INSTR函数简单使用方法的更多相关文章

  1. Oracle的regexp_instr函数简单用法

    REGEXP_INSTR函数让你搜索一个正则表达式模式字符串.函数使用输入字符集定义的字符进行字符串的计算. 它返回一个整数,指示开始或结束匹配的子位置,这取决于return_option参数的值. ...

  2. Oracle的REGEXP_SUBSTR函数简单使用方法

    REGEXP_SUBSTR延伸SUBSTR函数的功能.让你搜索一个正則表達式模式字符串. 这也相似于REGEXP_INSTR.而是返回子字符串的位置,它返回的子字符串本身. 语法 Oracle数据库中 ...

  3. 数据库迁移之从oracle 到 MySQL最简单的方法

    数据库迁移之从oracle 到 MySQL最简单的方法 因工作需要将oracle数据库换到MySQL数据库,数据量比较大,百万级别的数据,表也比较多,有没有一种既快捷又安全的方法呢?答案是肯定的,下面 ...

  4. Oracle的substr函数简单用法与substring区别

    substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H'  *从字符串第一个字符开始截取长度为1的字符串 subst ...

  5. Oracle中Table函数简单应用实例

    说明 表函数可接受查询语句或游标作为输入参数,并可输出多行数据. 该函数可以平行执行,并可持续输出数据流,被称作管道式输出. 应用表函数可将数据转换分阶段处理,并省去中间结果的存储和缓冲表. 优势 1 ...

  6. Oracle的substr函数简单用法

    substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H'  *从字符串第一个字符开始截取长度为1的字符串 subst ...

  7. sort函数简单调用方法

    向量调用sort函数排序,一般有三个参数,即为sort(v.begin(),v.end(),cmp),第三个传入的是比较函数的地址(函数名),决定你比较的性质,运用灵活 #include<ios ...

  8. Oracle的substr函数简单用法(转)

    转:http://www.cnblogs.com/nicholas_f/articles/1526063.html substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('H ...

  9. Oracle的REGEXP_REPLACE函数简单用法

    转载:http://blog.csdn.net/itmyhome1990/article/details/50380718

随机推荐

  1. iis服务器配置 url rewrite 模块

    从网上找了一下,原来微软IIS官方网站给IIS7及以后续版本提供了个URL重写组件. 下载地址:https://www.iis.net/downloads/microsoft/url-rewrite ...

  2. 用java源代码学数据结构<七>: BST

    /* * 以int类为例 * 其它的类必须能够比较 * */ //二叉搜索树的节点点 class BSTNode{ int item; BSTNode lc; BSTNode rc; BSTNode ...

  3. ElasticSearch reindex报错:the final mapping would have more than 1 type

    ElasticSearch reindex报错:the final mapping would have more than 1 type 学习了:https://blog.csdn.net/qq_2 ...

  4. 转: APK签名校验绕过

    转: http://drops.wooyun.org/mobile/4296 APK签名校验绕过 3xpl0it · 2014/12/11 10:41 0x01 Android签名机制 将APK重命名 ...

  5. Netty利用ChannelGroup广播消息

    在Netty中提供了ChannelGroup接口,该接口继承Set接口,因此可以通过ChannelGroup可管理服务器端所有的连接的Channel,然后对所有的连接Channel广播消息. Serv ...

  6. springMVC 头像裁剪上传并等比压

    第一次写头像裁剪上传,原本想着直接本地预览裁剪再上传,可是时间有限,jquery.jcrop貌似并没有对 假设是ie下图片预览效果是滤镜做的  做出对应处理,也没有时间去改;仅仅好将就一下先把图片上传 ...

  7. js中,三元运算的简单应用(?:)

    js中,三元运算的简单应用: var sinOrMul = ""; sinOrMul =(subType=="single")?("<span ...

  8. Core Data 多表连接及查询

    一:先建议两张表 Person,Score 分别代表,学生表,分数表 在 Person的Relationships里面建立关系,指向分数score 二:coreData生成的两个表: Person @ ...

  9. angular 禁止事件冒泡 和 默认行为

    事件冒泡和事件捕捉一直以来都是被讨论的话题,也许大家平时在工作中没有遇到过需要解决事件冒泡的情况举个例子: <body ng-click="fun1()"> <d ...

  10. 苹果通知推送服务(APNS)关键特性摘要

    1. If APNs attempts to deliver a notification but the device is offline, the notification is stored ...