我只想分别提取字母字符。
例如,“ NIC132DA.1”的输出应分别为“ NIC”和“ DA”,没有任何数字。

我尝试了以下查询:

select regexp_replace('NIC132DA.1','[^A-Za-z]') from dual;


我得到以下输出:NICDA
预期的输出分别是“ NIC”和“ DA”。
注意:输入字符串中的字母字符数不是固定的。

最佳答案

您可以使用REGEXP_SUBSTR

select
    regexp_substr('NIC132DA.1','[A-Za-z]+', 1, 1) first,
    regexp_substr('NIC132DA.1','[A-Za-z]+', 1, 2) second
from dual;


最好使用多语言字符类[:alpha:]

select
    regexp_substr('NIC132DA.1','[[:alpha:]]+', 1, 1) first,
    regexp_substr('NIC132DA.1','[[:alpha:]]+', 1, 2) second
from dual;

09-25 20:45