如果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中用正则表达式搜索文本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)