如何从REGEX Oracle Sql查询中获取一个字母和一个数字

时间:2017-05-08 22:03:02

标签: oracle-sqldeveloper

试图获得" P1:"从这个代码,但如果我添加数字,它也将输出这些。如何将其限制为仅取数字1-9并使其显示" NULL"如果它是两位数?

select REGEXP_SUBSTR('P1:EMAIL', '[P]+\d+[:]') as test from dual;

1 个答案:

答案 0 :(得分:0)

您已加入+运算符,即match one or more of the character or class。如果你想匹配一个,那么你不想要那个。您也不需要方括号:

select REGEXP_SUBSTR('P1:EMAIL', 'P\d:') as test from dual;

您可能还想将模式锚定到字符串的开头,但这不清楚;如果是这样的话:

select REGEXP_SUBSTR('P1:EMAIL', '^P\d:') as test from dual;