Oracle 正则表达式 正则表达式具有强大、便捷、高效的文本处理功能
能够添加、删除、分析、叠加、插入和修整各种类型的文本和数据
Oracle 从10g 开始支持正则表达式
下面通过一些例子来说明使用正则表达式来处理一些工作中常见的问题
REGEXP_SUBSTR REGEXP_SUBSTR 函数使用正则表达式来指定返回串的起点和终点,返回与sou rce_string 字符集中的VARCHAR2 或CLOB 数据相同的字符串
语法: --1
REGEXP_SUBSTR 与SUBSTR 函数相同,返回截取的子字符串 REGEXP_SUBSTR(srcstr, pattern [, position [, occurrence [, match_option]]]) 注: srcstr 源字符串 pattern 正则表达式样式 position 开始匹配字符位置 occurrence 匹配出现次数 match_option 匹配选项(区分大小写) 1
1 从字符串中截取子字符串 SELECT regexp_substr('1PSN/231_3253/ABc', '[[:alnum:]]+') FROM dual; Output: 1PSN [[:alnum:]]+ 表示匹配1个或者多个字母或数字字符
SELECT regexp_substr('1PSN/231_3253/ABc', '[[:alnum:]]+', 1, 2) FROM dual; Output: 231 与上面一个例子相比,多了两个参数 1 表示从源字符串的第一个字符开始查找匹配 2 表示第2次匹配到的字符串(默认值是“1”,如上例) select regexp_substr('@@/231_3253/A