oracle中截取一个字符串中的数字

oracle中截取一个字符串中的数字,第1张

如果Oracle版本不是太低的话,使用 正则表达式函数 REGEXP_SUBSTR 处理。\x0d\\x0d\5个参数\x0d\第一个是输入的字符串\x0d\第二个是正则表达式\x0d\第三个是标识从第几个字符开始正则表达式匹配。(默认为1)\x0d\第四个是标识第几个匹配组。(默认为1)\x0d\第五个是是取值范围:\x0d\i:大小写不敏感;\x0d\c:大小写敏感;\x0d\n:点号 不匹配换行符号;\x0d\m:多行模式;\x0d\x:扩展模式,忽略正则表达式中的空白字符。\x0d\\x0d\SQL> SELECT\x0d\ 2 REGEXP_SUBSTR(a,'[0-9]+')\x0d\ 3 FROM\x0d\ 4 test_reg_substr\x0d\ 5 WHERE\x0d\ 6 REGEXP_LIKE(a, '[0-9]+');

oracle使用正则表达式列入两个固定字符中间的数据方法:

1、正则表达式的使用需要用到关键字REGEXP,用定义一组字符,表示匹配125三个字符。

2、digit表示匹配任意数字,DOT表示ALL表示所有,连起来匹配包括换行符默认模式下是不能匹配行符n的。

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  

lishixinzhi/Article/program/Oracle/201311/17650

以上就是关于oracle中截取一个字符串中的数字全部的内容,包括:oracle中截取一个字符串中的数字、oracle怎么使用正则表达式列入两个固定字符中间的数据、Oracle10gR2中用正则表达式搜索文本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9754666.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存