Php Regex将确定印度移动电话号码

Php Regex将确定印度移动电话号码,php,regex,Php,Regex,请帮助我改进我的正则表达式以检测印度手机号码。它不匹配所有模式: +91-9883443344 0091-9883443344 +91 -9883443344 +91- 9883443344 +91 -9883443344 0091 - 9883443344 $pattern = "/((([\+?\(91\)\s?]|\-|0|((00|\+)?91))-?)?[7-9]\d{9,11})/s"; 您可以使用此正则表达式: ^(?:\+|00)91\h*-\h*\d{10}$ 这适用于所

请帮助我改进我的正则表达式以检测印度手机号码。它不匹配所有模式:

+91-9883443344
0091-9883443344
+91 -9883443344
+91- 9883443344
+91 -9883443344
0091 - 9883443344

$pattern = "/((([\+?\(91\)\s?]|\-|0|((00|\+)?91))-?)?[7-9]\d{9,11})/s";

您可以使用此正则表达式:

^(?:\+|00)91\h*-\h*\d{10}$
这适用于所有示例。这将匹配开头的
+
00
,然后是连字符,连字符的任一侧带有可选空格,后跟10位数字


我终于进入了这个正则表达式: 我测试的是: 9822010143+919454333035+91-9883443344 0091-9883443344+91-9883443344+91-9883443344+91-9883443344+91-9883443344 0091-9883443344 88922223

$pattern = "((\+?\(?[0]{0,2}?(91|86)?\)?\s?-?\s?[7-9]\d{9,11}))";
$comment=preg_replace($pattern,Call Us

,$comment);
var_dump($comment)

谢谢。你回答得很好。成功了!!比我想到的要干净得多:
(\(?[0]{0,2}?91\)?\s?-?\s?[7-9]\d{9,11})
这是下次需要构建正则表达式时的一个很好的资源: