我正在尝试验证可能出现以下两种形式的电话号码
123.231.457或011.44.321.326589
我试图使用REGEXP_LIKE来验证它。但是我想知道我们是否可以在regexp_like中使用OR子句?
这是我的代码
select count(1) digit_count
from dual
where regexp_like(l_phone_no,'[0-9]{3}.[0-9]{3}.[0-9]{4}');
适用于 123.231.4575 形式的电话号码。
答案 0 :(得分:2)
您可以将正则表达式匹配组与其本机OR (regex1|regex2)
([0-9]{3}\.[0-9]{3}\.[0-9]{4}|[0-9]{3}\.[0-9]{2}\.[0-9]{4}\.[0-9]{6})
并转义点以实际匹配点而不是任何字符
答案 1 :(得分:0)
作为注释,正则表达式中的.
匹配任何字符。你应该逃避它,所以正则表达式看起来应该更像:
where regexp_like(l_phone_no,'[0-9]{3}[.][0-9]{3}[.][0-9]{4}');
这也适用于评论中的表达。