sql - 正则表达式匹配指定字符串之前的字符(不包括)
问题描述
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
多谢!
解决方案
您可以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
干杯!!
推荐阅读
- spring-boot - 在 Springboot 应用程序中条件启用 HTTPS
- python - Networkx:反链算法示例
- python-3.x - 如何通过 arduino 发送的 api 提供数据?
- azure-devops - npm 任务运行时日志不可见
- python - Python:ValueError:无法解码任何 JSON 对象
- javascript - 从单独的 php 脚本调用 javascript 函数?
- openstreetmap - 如何在 overpass turbo 中编写具有两个要求的查询?
- php - Laravel 上的关系
- ruby-on-rails - 如何使用 Docker 创建它
- sql - 在 T-SQL SQL-SERVER 中将单个 XML 括号列转换为多列