Regex 在pl sql oracle中有效的手机号码

Regex 在pl sql oracle中有效的手机号码,regex,oracle,plsql,Regex,Oracle,Plsql,我想检查手机号码是否是最新的,如果是真的-从AT获取 例如 数字正确: 0521234567 521234567-开始时只需输入0 052-1234567 0521234567 052-123-456-7 数字不正确: 052123 0871234567 我怎么做?? 我试着写: SELECT REGEXP_REPLACE('0521234567', '^0?(5[0-9])(\-)?\d{7}$', '') FROM dual; 但这是回报 谢谢 如果字符串满足格式,则返回字符串,否则返回

我想检查手机号码是否是最新的,如果是真的-从AT获取 例如 数字正确: 0521234567 521234567-开始时只需输入0 052-1234567 0521234567 052-123-456-7 数字不正确: 052123 0871234567

我怎么做?? 我试着写:

SELECT REGEXP_REPLACE('0521234567', '^0?(5[0-9])(\-)?\d{7}$', '')  FROM dual;
但这是回报

谢谢

如果字符串满足格式,则返回字符串,否则返回NULL

SELECT CASE WHEN REGEXP_LIKE('0521234567', '^0?(5[0-9])(\-)?\d{7}$') 
       THEN '0521234567'
       ELSE NULL END
FROM dual;