[英]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.