`
米奈希尔
  • 浏览: 269081 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Oracle中查询使用正则表达式函数REGEXP_LIKE

阅读更多

    Oracle中的Like操作符使用'_'和'%'作为通配符,使用就像这样:

SELECT name FROM test_like WHERE name like '_a%'; 

    即匹配test_like表name列中第2个字母是a的所有行。但是注意,Oracle匹配时区分大小写的。也就是说上面的查询时无法查询到name='SAas'这行的。

 

    Oracle10g中提供的正则表达式功能可以很好的解决这个问题,当然这不是使用正则表达式函数的唯一优点,实际上它比Like操作符强大的多。

    正则表达式的语法就不用多说了,现在大多数语言都支持正则表达式了。

    下面主要介绍下Oracle中正表达式函数REGEXP_LIKE的使用:

REGEXP_LIKE(x, pattern [, match_option])

当源字符串x匹配正则表达式pattern时,返回true。可以使用match_option修改默认匹配选项,该参数可以被设置为:

- 'c', 说明在进行匹配时区分大小写(默认选项)
- 'i', 说明在进行匹配时不区分大小写
- 'n'   允许使用可以匹配任意字符的操作符(通常是'.')
- 'm', 将x作为一个包含多行的字符串

    举个例子:

SELECT * FROM test_reg WHERE REGEXP_LIKE(name, '(a)\1', 'i');

    上面的SQL语句匹配test_reg表中name列含有两个连续字符'a'(不区分大小写)的行,如name='SaAs'。此外,这里我们还使用了正则表达式中的后引用语法——\n表示重复n次上次匹配的内容,此处(a)\1表示匹配两个连续的字符'a'。

    需要注意的是,后引用必须使用双括号,否则会出现如下结果:

SELECT * FROM test_reg WHERE REGEXP_LIKE(name, 'a\1', 'i')
 
ORA-12727: 正则表达式中的后向引用无效

 

    最后一点,不要混淆LIKE操作符的通配符和正则表达式的语法,也就是说不要再正则表达式中使用LIKE操作符中的通配符,如果这样做会得到未知的结果,因为'_'和'%'会被正则表达式当做普通字符进行匹配。

    比如下面这条SQL想要得到name='SaAs'这条记录,但实际的查询结果为空。

SQL> SELECT * FROM test_reg WHERE REGEXP_LIKE(name, '^_(a)\1', 'i');
 
NAME
----------

   实际应该使用:

SQL> SELECT * FROM test_reg WHERE REGEXP_LIKE(name, '^.(a)\1', 'i');
 
NAME
----------
SaAs
 
0
0
分享到:
评论

相关推荐

    oracle_10g正则表达式_REGEXP_LIKE_用法

    下面将详细介绍`REGEXP_LIKE`的用法以及如何在Oracle 10g中使用正则表达式进行数据筛选。 ### Oracle 10g正则表达式与`REGEXP_LIKE` Oracle 10g支持多种正则表达式相关的函数,包括但不限于: 1. **`REGEXP_LIKE`...

    Oracle正则表达式函数全面解析

    ### Oracle正则表达式函数全面解析 #### 一、引言 在数据库处理文本数据时,经常需要用到模式匹配。Oracle数据库提供了丰富的正则表达式函数,这些函数可以帮助开发者更高效地进行文本匹配、搜索和替换等操作。本文...

    oracle正则表达式regexp_like的用法详解

    在Oracle数据库中,regexp_like是一个非常有用的函数,用于实现正则表达式匹配,其功能类似于LIKE,但提供了更为强大的模式匹配能力。在深入了解regexp_like函数之前,有必要先了解一些基础知识点,包括正则表达式的...

    Oracle中的正则表达式

    Oracle中的正则表达式函数提供了强大的字符串处理功能,能够大大提高数据库应用程序的效率和可读性。 正则表达式的基本概念包括: * 元字符和普通字符:元字符是指在正则表达式中表示特殊含义的字符,如"."、"\"、...

    Oracle正则表达式详解(用法+实例)

    ### Oracle正则表达式详解(用法+实例) #### 一、正则表达式简介 正则表达式是一种用于匹配字符串中字符组合的工具。它由一个或多个字符及特殊的字符元组成,能够帮助我们执行复杂的字符串搜索和替换任务。在...

    Oracle分析函数基本概念和语法总结及Regexp_***用法

    Oracle分析函数是数据库管理系统Oracle中的一种高级查询工具,它们用于处理行集,...了解并熟练掌握Oracle分析函数和正则表达式函数,能显著提高在数据库管理和数据分析方面的效率,使得复杂的数据处理变得简单直观。

    Oracle正则表达式函数

    Oracle数据库系统提供了...对于初学者来说,阅读《美河学习在线eimhe.com_Oracle正则表达式函数.pdf》和《美河学习在线eimhe.com_Oracle正则表达式.pdf》这两份资料,将有助于深入理解和掌握Oracle中的正则表达式功能。

    Oracle数据库正则表达式

    同时,正则表达式也可以与其他 Oracle 函数结合使用,例如 substr()、replace()、instr() 等,来实现更加复杂的数据处理任务。 正则表达式是 Oracle 数据库中的一种强大的工具,可以帮助用户快速、高效地处理数据。

    Oracle 10g正则表达式函数

    Oracle 10g 正则表达式函数是 Oracle 数据库中的一种功能强大且灵活的字符串处理函数。它可以实现复杂的字符串匹配和提取功能,非常适合处理非结构化数据。 1. 元字符 在 Oracle 10g 正则表达式中,元字符是特殊的...

    Oracle正则表达式函数介绍[定义].pdf

    Oracle数据库系统支持正则表达式,这为在SQL查询中进行复杂文本匹配提供了强大的工具。...这就是Oracle正则表达式函数的强大之处,能够处理更复杂、灵活的文本匹配需求,极大地扩展了SQL的查询能力。

    oracle正则表达式

    PDF文件"Oracle正则表达式函数介绍.pdf"很可能详细介绍了这些函数的使用方法、模式语法和实例,而"Oracle_正则表达式.txt"可能包含了更多示例或使用技巧。对于学习和理解Oracle正则表达式,这两个文件都是宝贵的资源...

    Oracle正则表达式函数介绍.rar

    在Oracle中熟练掌握正则表达式函数对于数据处理、数据分析和问题排查至关重要。通过结合这些函数,我们可以构建出高度灵活和精确的查询,从而满足各种复杂的数据检索需求。深入理解这些函数及其应用将显著提高你在...

    Oracle Regular Expressions 数据库 正则表达式

    2. **Oracle正则表达式函数** - **REGEXP_LIKE**: 这个函数类似于传统的LIKE,但支持正则表达式。例如,`WHERE column REGEXP_LIKE 'abc*'`将匹配以"abc"开头的所有字符串。 - **REGEXP_SUBSTR**: 用于从字符串中...

    Oracle 总结的正则表达式带有详细的例子与解释

    Oracle数据库中的正则表达式是强大的文本处理工具,尤其在数据查询和清洗方面表现出极高的灵活性。在Oracle 10g及更高版本中,Oracle引入了对IEEE POSIX标准的正则表达式支持,使得SQL语句能进行更复杂的模式匹配。 ...

    正则表达式在Oracle中的应用与实现.pdf

    Oracle中的正则表达式函数包括: 1. REGEXP_LIKE:用于检查字符串是否与正则表达式匹配。 2. REGEXP_INSTR:用于返回字符串中正则表达式的位置。 3. REGEXP_SUBSTR:用于返回字符串中与正则表达式匹配的子串。 4. ...

    ORACLE.PLSQL正则表达式概述

    例如,在`WHERE`子句中使用正则表达式可能无法利用索引,导致全表扫描,从而影响查询效率。 ### 结论 ORACLE.PLSQL中的正则表达式功能为数据库操作提供了极大的灵活性和便利性。无论是数据清洗、格式化还是复杂的...

Global site tag (gtag.js) - Google Analytics