duandu1049 2014-03-24 12:47
浏览 49
已采纳

在PHP中使用正则表达式模式查找纯文本之间的电话号码

I am trying to get the phone number between the plain text. But here, I am facing some typical problem. The pattern which I have written is not matching all types of phone numbers. Ex:

$string  = 'sample text sample text sample text (216) 499 1001 sample text sample text (262) 335 60 76-77 sample text sample text sample text';
$string = str_replace('
', PHP_EOL, $string);
//my regex pattern

$regex = '/(?:1(?:[. -])?)?(?:\((?=\d{3}\)))?([2-9]\d{2})(?:(?<=\(\d{3})\))? ?(?:(?<=\d{3})[.-])?([2-9]\d{2})[. -]?(\d{4})(?: (?i:ext)\.? ?(\d{1,5}))?\s+?/'; 

preg_match_all($regex, $string, $matches);
print_r($matches);

which is giving me the first phone number , but not the second one. Plz help me in getting that pattern also.

 Output:
    Array
    (
        [0] => Array
            (
                [0] => (216) 499 1001
            ) 
----
---

Thanks in advance!

  • 写回答

1条回答 默认 最新

  • douxie4583 2014-03-24 19:42
    关注

    Hi I will write the algorithm for this

    1) Fetch the whole string into an array 2) start scan document using for loop(till end of line) 3) use is_numeric function finding finding numbers and count total digits then use an if statement (10 digits= phone number, 5 digits=postal code like that) 4) if it is a phone number move the value in to a temp array else next line(use space as separator) 4)now u can process all

    if you want to filter phone number with area code or service provider, u can use following codes

    <?php
    $strings = array('+91', '+11', '+97');
    foreach ($strings as $testcase) {
        if (ctype_digit($testcase)) {
            echo "Match found .
    ";
        } else {
            echo "Not matching.
    ";
        }
    }
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟