我只想分别提取字母字符。
例如,“ 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;