Oracle开发中的正则表达式
来源:互联网 发布:linux怎么禁ping 编辑:程序博客网 时间:2024/05/22 10:29
今天在一个技术讨论群里有人问了一个问题,@我了一下,我就看了一眼。问题给了一个字符串,字符串里有数字有字母有特殊符号,需求是取该字符串中连续的数字。要求用正则表达式。我对正则表达式也不是精通,一知半解。就帮他看了一下,想了一个思路:
1、先找到第一个数字出现的位置;
2、从第一个数字的位置开始,找到第一个非数字出现的位置;
3、然后从第一个出现数字的位置开始截取字符,截取到第一个非字符的位置
根据以上思路写了一个函数如下:
create or replace function fc_get_number_lx(i_str in varchar2) return varchar2 is
v_num1 number;
v_num2 number;
v_str varchar2(1000);
begin
select regexp_instr(i_str, '\d', 1, 1) into v_num1 from dual;
select regexp_instr(i_str, '\D', v_num1, 1) into v_num2 from dual;
select substr(i_str, v_num1, v_num2 - v_num1) into v_str from dual;
return v_str;
end;
end pkg_qcf_tool;
当然,也可以直接取值,不写成函数,把上面的函数内容直接写一条语句即可:
select substr(i_str, regexp_instr(i_str, '\d', 1, 1), regexp_instr(i_str, '\D', regexp_instr(i_str, '\d', 1, 1), 1) - regexp_instr(i_str, '\d', 1, 1)) into v_str from dual;select substr(i_str, v_num1, v_num2 - v_num1) from dual;
不知道能不能直接使用正则表达式,有兴趣的可以试一下~~
- Oracle开发中的正则表达式
- oracle中的正则表达式
- ORACLE中的正则表达式
- oracle中的正则表达式
- oracle中的正则表达式
- Oracle中的正则表达式应用
- oracle中的正则表达式(regular expression)
- oracle中的正则表达式(regular expression)
- oracle中的正则表达式函数regexp_instr
- ORACLE 10G 中的正则表达式
- oracle 10g中的正则表达式
- oracle中的正则表达式(regular expression)
- 转官方:Oracle中的正则表达式
- ORACLE中的支持正则表达式的函数
- backreference Oracle正则表达式中的反向引用
- oracle中的正则表达式(regular expression)
- Oracle中的正则表达式(及函数)详解
- Oracle中的正则表达式(及函数)详解
- HD1285 确定比赛名次 【拓扑排序】
- Hadoop之SequenceFile
- 黑马程序员-多态的讲解
- hdu 3986 Harry Potter and the Final Battle spfa变形
- UVa 439-Knight Moves
- Oracle开发中的正则表达式
- PLSQL操作Oracle创建用户和表
- visualsvn在win8下本地内网使用架设小记
- OC - SortArray
- leetcode 138 —— Copy List with Random Pointer
- A - Dungeon Master
- 小白学开发(iOS)OC_ 字符串的比较判断(2015-08-12)
- Python爬虫之<单线程爬虫>
- 解决 Linux Mint 17.2 Nvidia驱动下屏幕亮度无法调节问题