我正在尝试从以下字段中提取以下子字符串,该字段包含下划线分隔的字符串,其中子字符串可能不在每个单元格中的相同位置
a_bsdf_cat123_adsd_esdf
a_cat345_zasd_weaq
cat123213_sdfa_sadfas_23dsafa
z_cat987_cat123_sdfaef
我想提取以字母“ cat”开头的第一个下划线分隔的子字符串。因此,在上面的示例中,我想提取
a_bsdf_cat123_adsd_esdf -> cat123
a_cat345_zasd_weaq -> cat345
cat123213_sdfa_sadfas_23dsafa -> cat123213
z_cat987_cat123_sdfaef -> cat987
我知道如何使用substr()和instr()函数提取子字符串,但是当它位于字段中的不同位置时却不知道。怎么办?
我需要从Oracle和MySQL中提取此内容。
答案 0 :(得分:2)
更新:
同时尝试:
REGEXP_SUBSTR(field, '[^|_]+cat[^_]*');