今天在一个技术讨论群里有人问了一个问题,@我了一下,我就看了一眼。问题给了一个字符串,字符串里有数字有字母有特殊符号,需求是取该字符串中连续的数字。要求用正则表达式。我对正则表达式也不是精通,一知半解。就帮他看了一下,想了一个思路:
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的PL/SQL环境中,正则表达式被集成到其函数库中,为数据库管理员和开发人员提供了处理复杂字符串模式的强大能力。 ### ORACLE.PLSQL中的正则表达式功能 #### 1. **正则表达式支持的函数** ORACLE.PLSQL中...
字符簇是POSIX正则表达式中一组预定义的字符集合,用于方便地表示常见的字符类型: - `[[:alpha:]]`:任何字母。 - `[[:digit:]]`:任何数字。 - `[[:alnum:]]`:任何字母或数字。 - `[[:space:]]`:任何空白字符。 ...
2. **错误排查**:正则表达式中的错误排查通常比标准SQL语句更加困难。开发者需要熟悉正则表达式的语法和特性,以便能够准确地定位和解决问题。 3. **性能考虑**:尽管正则表达式提供了强大的查询能力,但在某些...
POSIX字符类是正则表达式中的特殊字符集合,例如: - `[:alpha:]`:匹配所有字母字符(a-zA-Z)。 - `[:lower:]`:匹配所有小写字母。 - `[:upper:]`:匹配所有大写字母。 - `[:digit:]`:匹配所有数字。 - `[:alnum...
在Oracle数据库中,PLSQL(Procedural Language/Structured Query Language)提供了REGEXP_LIKE函数来支持正则表达式操作。这些功能允许开发者进行复杂的字符串匹配和处理。例如,`REGEXP_LIKE(column, pattern)` ...
总之,Oracle的正则表达式是数据库管理和开发中的有力工具,通过理解和熟练运用,能大大提高数据处理的效率和精确度。无论是简单的查找、替换,还是复杂的模式匹配,都能得心应手。在学习过程中,配合实际的数据库...
在毕业设计中,正则表达式是一个常用工具,尤其是在开发涉及数据处理和验证的项目时。例如,一个C#.NET毕业设计可能需要构建一个Web应用程序,其中用户需要输入特定格式的数据,这时就可以利用正则表达式来确保数据...
Jakarta ORO(Oracle Regular Expressions for Java)是Apache软件基金会开发的一个强大的Java正则表达式库,它为开发者提供了更为灵活和高效的正则表达式处理功能。在Java标准库中的java.util.regex包之外,Jakarta...
- 在开发过程中,可以使用在线正则表达式测试工具,如regex101、regexr等,帮助调试和验证正则表达式。 12. **性能考虑** - 虽然正则表达式功能强大,但过度复杂的正则可能会导致性能下降,因此在编写正则时应...
Oracle 正则表达式实例详解 FORM开发中的按行拆分需求:拆分后的行要有规律,并按前后层次排序 需求分析如下: 现有行: 2 , 2.1 , 2.2 , 2.3 3 2.1.1, 2.1.2 , 2.1.3 , 2.2.1 , 2.1.1.1, ...
标题中的“ibatis例子加教程&java&javascript&dhtml&正则表达式工具”涵盖了五个主要的IT技术领域:iBATIS、Java、JavaScript、DHTML和正则表达式。接下来,我们将深入探讨这些技术及其相关的知识点。 1. iBATIS: ...
本资源集合了Java开发中的核心组件JDK、前端JavaScript库JQuery以及编程语言通用的正则表达式API,这些都是IT开发中不可或缺的重要工具和知识。 首先,JDK(Java Development Kit)是Java编程语言的核心,由Oracle...
掌握Oracle正则表达式能够极大地提升你在数据库开发中的效率,尤其是在处理复杂的数据过滤、查找和替换时。通过深入学习并熟练运用这些函数和语法,你可以更好地理解和操纵Oracle数据库中的数据,从而提高你的专业...
在数据库管理系统Oracle中,正则表达式通过一系列的函数来应用,比如REGEXP_LIKE用于匹配正则表达式模式,REGEXP_INSTR用于返回模式出现的位置,REGEXP_REPLACE用于执行查找并替换操作,REGEXP_SUBSTR用于返回匹配的...
需要注意的是,正则表达式中有些特殊字符(如点号.)有特定含义,如果要在表达式中匹配这些特殊字符本身,则需要使用反斜杠\进行转义,如要匹配点号,则需写作\.\。 此外,Oracle支持扩展正则表达式,即使用...