Oracle SQL中定位提取字母后接5位数字的正则表达式方案
Oracle SQL提取字母后接5位数字的子串
要定位并提取字符串中单个字母后接5位数字的内容(内容可能不存在或被其他字符包围),可以直接使用Oracle的REGEXP_SUBSTR正则匹配函数实现,匹配不到时返回null。
实现代码
WITH sample_data AS ( SELECT '**' col FROM dual UNION ALL SELECT '+D91882' FROM dual UNION ALL SELECT '3DD12523' FROM dual UNION ALL SELECT 'Testing' FROM dual UNION ALL SELECT 'A12345' FROM dual UNION ALL SELECT '3DR4096' FROM dual UNION ALL SELECT 'G92648RE' FROM dual UNION ALL SELECT 'D123456' FROM dual ) SELECT REGEXP_SUBSTR(col, '[A-Za-z]\d{5}') AS result FROM sample_data;
代码说明
REGEXP_SUBSTR(col, '[A-Za-z]\d{5}'):从col字段中提取第一个符合规则的子串:[A-Za-z]:匹配任意大小写英文字母\d{5}:匹配连续5位阿拉伯数字
- 若字段中没有符合规则的内容,函数会返回
null
输出结果
执行后得到的结果与预期一致:
- null
- D91882
- D12523
- null
- A12345
- null(注:原示例中
3DR4096是字母后接4位数字,不符合5位要求,故返回null) - G92648
- D12345
内容的提问来源于stack exchange,提问作者Nicko
相关产品推荐
相关产品推荐

