繁体   English   中英

使用PHP以纯文本形式查找电话号码模式的正则表达式

[英]Regular expression to find the phone number pattern in plain text using PHP

我的纯文本包含不同模式的电话号码。 我需要找到纯文本中存在的电话号码格式。 我已经做到了

 $regex = '/^(?:1(?:[. -])?)?(?:\((?=\d{3}\)))?([2-9]\d{2})(?:(?<=\(\d{3})\))? ?(?:(?<=\d{3})[.-])?([2-9]\d{2})[. -]?(\d{4})(?: (?i:ext)\.? ?(\d{1,5}))?$/';
 $text = "fhsd hjkh ksd fsd fjkfhdsk 333-445-33333 sdfhjksdh s sdfjksd fdf";
 if(preg_match($regex,$text,$match)){
     print_r($match);
 }else echo "not found";

仅当我们提供电话号码作为输入时,它才会检测电话号码。 它未检测到纯文本格式的电话号码。

请帮助我。 提前致谢!

从正则表达式的开头删除^ ,从结尾删除$

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

您可能会阅读有关锚的更多信息。

更新:连字符分隔的电话号码的正则表达式分为三部分:

$regex = '/\\d+-\\d+-\\d+/';

将此表达式用于连字符分隔的电话号码。

$ regex ='/ \\ d +-\\ d +-\\ d + /';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM