Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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
Php 在字符串中查找有效的英国电话号码_Php_Regex - Fatal编程技术网

Php 在字符串中查找有效的英国电话号码

Php 在字符串中查找有效的英国电话号码,php,regex,Php,Regex,我有一个输入表格,如果输入了电话号码,我想去掉它。我发现了一个表达式,它可以找到各种各样的英国数字,但它只有在输入的唯一内容是数字时才起作用。我需要正则表达式在文本中查找数字的任何实例 这是我到目前为止所拥有的 if (preg_match_all('/^\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}

我有一个输入表格,如果输入了电话号码,我想去掉它。我发现了一个表达式,它可以找到各种各样的英国数字,但它只有在输入的唯一内容是数字时才起作用。我需要正则表达式在文本中查找数字的任何实例

这是我到目前为止所拥有的

if (preg_match_all('/^\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4}|\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3})|\d{5}\)?[\s-]?\d{4,5}|8(?:00[\s-]?11[\s-]?11|45[\s-]?46[\s-]?4\d))(?:(?:[\s-]?(?:x|ext\.?\s?|\#)\d+)?)$/', $post, $match_num))
{
    $error[0] = 1;
    $error[2] = 'error text';
    $error[4] = $match_num;
}

只需从开头和结尾删除
^
$
。这将允许正则表达式在任何地方匹配。

我认为您应该为输入编写一个解析器,正则表达式汤不是我想在一周后破译的东西(或者现在想起来),非常有用,谢谢!我真的不能再拖延学习regex了