我想分别只提取字母字符。
例如输出" NIC132DA.1 "应该是" NIC "和" DA "单独没有任何数字。
我尝试了以下查询:
select regexp_replace('NIC132DA.1','[^A-Za-z]') from dual;
我得到以下输出: NICDA
预期出局是" NIC"和" DA"分别。
注意:输入字符串中的字母数字不固定。
答案 0 :(得分:5)
您可以使用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;