PL/SQL Regex 查找最后一个数字并拆分
Posted
技术标签:
【中文标题】PL/SQL Regex 查找最后一个数字并拆分【英文标题】:PL/SQL Reg Exp found last number and split 【发布时间】:2012-04-26 04:19:56 【问题描述】:如何使用 reg 表达式找到字符串中的最后一个数字,然后将右侧的所有内容放入 c1 列,然后从最后一个数字将左侧的所有内容 + 1 个字符放入 c2 列?
例如 1
string = 1234john4345 this is a test.
结果
c1 = 1234john4345
c2 = this is a test.
例如 2
string = 1234john4345a this is a test.
结果
c1 = 1234john4345a
c2 = this is a test.
【问题讨论】:
【参考方案1】:select test
--Group 1: Match everything up to the last digit, and one other character
--Group 2: Everything after group 1
,regexp_replace(test, '(.*[[:digit:]].)(.*)', '\1') c1
,regexp_replace(test, '(.*[[:digit:]].)(.*)', '\2') c2
from
(
select '1234john4345 this is a test.' test from dual union all
select '1234john4345a this is a test' test from dual
);
【讨论】:
以上是关于PL/SQL Regex 查找最后一个数字并拆分的主要内容,如果未能解决你的问题,请参考以下文章
Oracle PL SQL 过程需要修改以接受具有所有类型字符的数组并拆分
在 C++ 中使用 regex/boost 查找 2 个数字之间的数字