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;
下面这个例子给出一个字符串, “1”为开始位置 “2”是搜索第二个匹配的,”0”是return_option 返回出现的第一个字符位置
“c”是区分大小写 ,所以将返回13
SELECT REGEXP_INSTR ('my is itMyhome', 'm', 1, 2, 0, 'c')FROM dual;
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;
这个例子将返回6,因为它是搜索的第一个元音(a,i,o,e或u)字符串。由于我们没有指定match_parameter值时,
REGEXP_INSTR函数将执行区分大小写的搜索,这意味着在”Itmyhome”的’I’将不匹配。
作者:itmyhome
你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 全新的界面设计 ,将会带来全新的写作体验;
- 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
- 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
- 全新的 KaTeX数学公式 语法;
- 增加了支持甘特图的mermaid语法 功能;
- 增加了 多屏幕编辑 Markdown文章功能;
- 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
- 增加了 检查列表 功能。
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
强调文本 强调文本
加粗文本 加粗文本
H2O is是液体。
210 运算结果是 1024.
链接: link.
带尺寸的图片: 
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
- 项目1
- 项目2
- 项目3
一个简单的表格是这么创建的:
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|
Single backticks | 'Isn't this fun?' | ‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" | “Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash | – is en-dash, — is em-dash |
Markdown
Text-to-
HTML conversion tool
Authors
一个具有注脚的文本。2
Markdown将文本转换为 HTML。
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示
title Adding GANTT diagram functionality to mermaid
section 现有任务
已完成 :done, des1, 2014-01-06,2014-01-08
进行中 :active, des2, 2014-01-09, 3d
计划一 : des3, after des2, 5d
计划二 : des4, after des3, 5d
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
oracle在Where子句中,可以对datetime、char、varchar字段类型的列用Like子句配合通配符选取那些“很像…”的数据记录,以下是可使用的通配符:
% 零或者多个字符
_ 单一任何字符(下划线)
\ 特殊字符
oracle10g以上支持正则表达式的函数主要有下面四个:
1,REGEXP_LIKE :与LIKE的功能相似
2,REGEXP_INSTR :与INSTR的功能相似
3,REGEXP_SUBSTR :与SUBSTR的功能相似
4,REGEXP_REPLACE :与REPLACE的功能相似
POSIX 正则表达式由标准的元字符(metach
正则表达式已经在很多软件
中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境。
本文主要介绍了关于
Oracle中正则表达式的使用方法,下面话不多说了,来一起看看详细的介绍。
Oracle使用正则表达式离不开这4个
函数:
regexp_like、
regexp_substr、
regexp_
instr、
regexp_replace。
regexp_like
该
函数只能用于条件表达式,和 like 类似,但是使用的正则表达式进行匹配
//查询所有包含小写字母或者数字的记录。
select * from fzq where
regexp_
下面通过一些例子来说明使用正则表达式来处理一些工作中常见的问题。 1. REGEXP_SUBSTR REGEXP_SUBSTR 函数使用正则表达式来指定返回串的起点和终点,返回与source_string 字符集中的VARCHAR2 或CLOB 数据相同的字符串。 语法: –1.REGEXP_SUBSTR与SUBSTR函数相同,返回截取的子字符串 REGEXP_SUBSTR(srcstr, pattern [, position [, occurrence [, match_option]]]) 注: srcstr 源字符串 pattern 正则表达式样式 position 开始匹配字符位置
该软件包实现的功能是:
REGEXP_LIKE(text, pattern [, mode])
REGEXP_SUBSTR(text, pattern [,position [,occurence [,mode]]])
REGEXP_
INSTR?(text, pattern [,position [,occurence [,return_end [,mode]]]])
REGEXP_REPLACE?(text, pattern, replace [,position [,occurence [,return_end [,mode]]])
这些
函数支持与MySQL
REGEXP运算符相同的正则表达式语法,如MySQL手册的正则表达式附录
中所述。
这些功能在名称上与
Oracle SQL
函数
/*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)所构成:‘^’ 匹配输入字符串的开始位置,在方括号表达式中使用,此时它表
文章目录1 概述2 匹配规则3 正则函数3.1 regexp_substr()3.2 regexp_instr()3.3 regexp_replace()3.4 regexp_like()
1. 作用:处理字符时,很强大
2. 分类:与下列相似,当功能更加强大('支持正则表达式')
(1) regexp_like : 同 like 功能相似(模糊 '匹配')
(2) regexp_instr : 同 instr 功能相似(返回字符所在 '下标')
(3) regexp_s
ORACLE中的支持正则表达式的函数主要有下面四个:
1,REGEXP_LIKE :与LIKE的功能相似
2,REGEXP_INSTR :与INSTR的功能相似
3,REGEXP_SUBSTR :与SUBSTR的功能相似
4,REGEXP_REPLACE :与REPLACE的功能相似
它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同,
但是它们...
EXEC :str:='XY,YZ';
SELECT COUNT(*) FROM t1 WHERE object_name IN
(SELECT
regexp_substr(:str,'[^,]+',1,LEVEL)AS value_str FROM dual
这个
函数是
oracle数据库
中的一个字符串处理
函数,它的作用是从一个字符串
中提取一段字符串。它的语法如下:
REGEXP_SUBSTR(string, pattern [, start [, nth [, match_param]]])
其
中:
string: 要提取的字符串。
pattern: 提取的字符串的模式,它可以是一个正则表达式。
start: 要提取的字符串的开始位置,默认为1。
nth: 要提取的字符串的第几个匹配,默认为1。
match_param: 匹配参数,可以是一个正则表达式的选项,如i表示忽略大小写。
例如,如果我们有一个字符串'abcdefg',我们可以使用
REGEXP_SUBSTR
函数提取它的一段字符串,如提取从第2个字符开始的3个字符:
SELECT
REGEXP_SUBSTR('abcdefg', '.{3}', 2) FROM DUAL;
结果为:'bcd'。
总的来说,
REGEXP_SUBSTR
函数是
oracle数据库
中一个非常有用的字符串处理
函数,它可以帮助我们快速提取字符串
中的一段字符串,特别是在处理复杂字符串时非常有用。