知识大全 Oracle10gR2中用正则表达式搜索文本

Posted 阿拉伯数字

篇首语:亦余心之所善兮,虽九死其犹未悔。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle10gR2中用正则表达式搜索文本相关的知识,希望对你有一定的参考价值。

Oracle10gR2中用正则表达式搜索文本  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

Oracle g Release 为了与文本字符串中的模式相匹配 添加了对POSIX正则表达式的支持 Release 用一些附加的可以在Perl找到的元字符 扩充了最初的模式元字符目录 如果你正在用Oracle gR 开发脚本 那么就看看本文里这些搜索文本的有效捷径

  首先 简短概述一下:函数REGEXP_LIKE针对一种模式搜索一个字符列 返回一个TRUE或FALSE的逻辑值 你可以在SQL SELECT语句的WHERE子句中用它来限定行数 或者在PL/SQL块中检查数据的有效性 相似的函数——REGEXP_REPLACE REGEXP_SUBSTR和REGEXP_INSTR——都能够在执行其他常见的字符串操作时 接受POSIX正则表达式

  Perl为POSIX 类 表达式添加了一些简短的模式 例如 在标准的POSIX正则表达式中 你用符号 [[:digit:]] 来表示一个从 到 的阿拉伯数字 在Perl中 它被简化成 \\d 大括号表示一次重复计数 因此 \\d 规定了三个阿拉伯数字 要表示你想要一个除阿拉伯数字之外的字符 POSIX模式是 [^[:digit:]] 但是在Perl中 它只表示为 \\D

  类似的捷径对于空白也存在: \\s 与 [[:space:]] 相对应 非空白: \\S 对应 [^[:space:]] 列表A中显示了一个取自人力资源方案的例子 列表A

  SQL> SELECT last_name FROM employees WHERE REGEXP_LIKE(last_name [[:space:]] );

  LAST_NAME

  

  De Haan

  SQL> SELECT last_name FROM employees WHERE REGEXP_LIKE (last_name \\s );

  LAST_NAME

  

  De Haan

  SQL> SELECT last_name FROM employees WHERE REGEXP_LIKE (last_name \\S ) AND ROWNUM < ;

  LAST_NAME

  

  AbelAnde

  Atkinson

  Austin

  BaerBaida

  Banda

  Bates

  Bell

  Bernstein

   rows selected

  Perl通过对运算符添加(?) 用 非贪婪型 匹配运算符扩充了POSIX中的 贪婪型 匹配运算符 例如 符号 ^ 与至少两个 最多五个 开头的值相匹配 但是 解释是 贪婪的 它尽可能地与最长的字符串相匹配 如果列中包括了 这种符号将与前五个 匹配 但是 符号 ^ ? 是 非贪婪的 它与最短的字符串匹配 这样 就只有两个 了 列表B中是一个利用REGEXP_SUBSTR的例子

   列表B

  SQL> CREATE TABLE testtab (x VARCHAR ( ));

  Table created

  SQL> BEGIN      FOR i IN LOOP        INSERT INTO testtab VALUES (LPAD( i ));      END LOOP;    END;    /

  PL/SQL procedure successfully pleted

  SQL> SELECT x FROM testtab;

  X                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

   rows selected

  SQL> SELECT REGEXP_SUBSTR(x ^ )    FROM testtab;

  REGEXP_SUB                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

   rows selected

  SQL> SELECT REGEXP_SUBSTR(x ^ ? )    FROM testtab;

  REGEXP_SUB                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

   rows selected  

cha138/Article/program/Oracle/201311/17650

相关参考

知识大全 正则表达式限制文本框只能输入数字

  许多时候我们在制作表单时需要限制文本框输入内容的类型下面我们用正则表达式限制文本框只能输入数字小数点英文字母汉字等各类代码  文本框只能输入数字代码(小数点也不能输入)  &n

知识大全 常用正则表达式

  说明正则表达式通常用于两种任务验证搜索/替换用于验证时通常需要在前后分别加上^和$以匹配整个待验证字符串;搜索/替换时是否加上此限定则根据搜索的要求而定此外也有可能要在前后加上b而不是^和$此表所

知识大全 Oracle正则表达式

Oracle正则表达式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracleg数据库内建了

知识大全 Oracle学习笔记:正则表达式

Oracle学习笔记:正则表达式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracleg数

知识大全 Oracle正则表达式小试用

Oracle正则表达式小试用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  去除字符串中匹配模式

知识大全 Oracle正则表达式中注意的问题

Oracle正则表达式中注意的问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Oracle

知识大全 正则表达式使用代码片段

  在javautilregex包中包括了两个类Pattern(模式类)和Matcher(匹配器类)Pattern类是用来表达和陈述所要搜索模式的对象Matcher类是真正影响搜索的对象另加一个新的例

知识大全 Oracle发布10gR2Patchset2版本10.2.0.3

Oracle发布10gR2Patchset2版本10.2.0.3  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 Oracle10gR2 新视图:V$SESSION变化跟踪

Oracle10gR2新视图:V$SESSION变化跟踪  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 Oracle10gR2ORA-3136错误解决

Oracle10gR2ORA-3136错误解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最