首页 > 解决方案 > 正则表达式匹配指定字符串之前的字符(不包括)

问题描述

REGEXP_SUBSTR(label) ,'.*_dis')

这是针对 sql 的;

我的数据库是mysql

select REGEXP_SUBSTR(label) ,'.*_dis') as dis ,
substr(label,length(label))-1) as num
from table

table.lable col 的数据:

1. a_b_dis_12
2. a_dis_13
3. c_d_dis_23
3. c_dis_22

我想 在'_dis'之前获取字符数字部分 使用正则表达式

1.a_b   12
2.a     13
3.c_d   23
4.c     22

多谢!

标签: sqlregexoracleplsql

解决方案


您可以regexp_substr按如下方式使用:

Select regexp_substr(your_column, '^(.*)_dis_[0-9]+$',1,1,null,1) as dis,
       Regexp_substr(your_column, '[0-9]+$') as num
  From your table

干杯!!


推荐阅读