Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 正则表达式中的OR子句_Sql_Regex_Oracle - Fatal编程技术网

Sql 正则表达式中的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的电话号码 注意,正则表达式中的匹配任何字符。您应该对其进

我正在尝试验证以下两种形式的电话号码

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的电话号码

注意,正则表达式中的
匹配任何字符。您应该对其进行转义,因此正则表达式应该更像:

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});解决了我的问题。请注意:您提供的两个正则表达式都不符合第二行中给定的示例,即使您说它们解决了您的问题:)两个示例都缺少第二个点后的第四位数字,以匹配您的正则表达式数据库版本。您的正则表达式要求电话号码最后部分的四位数字(如美国电话号码)但问题中显示的示例在电话号码的最后部分只有三位数字???