Sql 正则表达式中的OR子句
我正在尝试验证以下两种形式的电话号码 123.231.457或011.44.321.326589 我试图使用REGEXP\u来验证它。但是我想知道我们是否可以在regexp_中使用OR子句 这是我的密码Sql 正则表达式中的OR子句,sql,regex,oracle,Sql,Regex,Oracle,我正在尝试验证以下两种形式的电话号码 123.231.457或011.44.321.326589 我试图使用REGEXP\u来验证它。但是我想知道我们是否可以在regexp_中使用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的电话号码 注意,正则表达式中的匹配任何字符。您应该对其进
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的电话号码 注意,正则表达式中的
匹配任何字符。您应该对其进行转义,因此正则表达式应该更像:
where regexp_like(l_phone_no,'[0-9]{3}[.][0-9]{3}[.][0-9]{4}');
这也适用于注释中的表达式。您可以将正则表达式匹配组与它的本机或
(regex1 | regex2)
([0-9]{3}.[0-9]{3}.[0-9]{4}.[0-9]{3}.[0-9]{2}.[0-9]{4}.[0-9]{6})
并将点转义为实际匹配的点,而不是任何字符我发现添加一个简单的OR子句,比如从对偶中选择count(1)digital_count,其中regexp_like(l_phone_no,[0-9]{3}.[0-9]{3}.[0-9]{4}或regexp__like(l_phone_no,[0-9]{3}.[0-9]{4}.[0-9]{6});解决了我的问题。请注意:您提供的两个正则表达式都不符合第二行中给定的示例,即使您说它们解决了您的问题:)两个示例都缺少第二个点后的第四位数字,以匹配您的正则表达式数据库版本。您的正则表达式要求电话号码最后部分的四位数字(如美国电话号码)但问题中显示的示例在电话号码的最后部分只有三位数字???