Oracle SQL中使用REGEXP_SUBSTR提取AC后的5位固定数字
解决方法
可以使用正则表达式直接匹配AC_后的5位数字,无需依赖AC在字符串中的位置。利用Oracle的REGEXP_SUBSTR函数,通过捕获组提取目标内容:
示例代码
WITH CTE(STR) AS ( SELECT 'Phone_mid_bsnl_AC_10035' FROM DUAL UNION ALL SELECT 'Phone_up_gsk_pdp_AC_90054' FROM DUAL ) SELECT STR, REGEXP_SUBSTR(STR, 'AC_(\d{5})', 1, 1, NULL, 1) AS target_number FROM CTE;
正则说明
AC_:匹配固定的字符串片段,定位数字的前置标识(\d{5}):匹配连续5位数字,并将这部分内容作为捕获组REGEXP_SUBSTR的第6个参数1:指定提取第一个捕获组的内容,也就是我们需要的5位数字
这个写法不受AC在字符串中位置的影响,只要目标数字是紧跟在AC_后的5位数字,就能准确提取。
内容的提问来源于stack exchange,提问作者Vividha
相关产品推荐
相关产品推荐

