我正在使用preg_match从一段文本中提取美国电话号码的各个部分.我已经可以提取数字了.但我想让匹配[0]仅包括电话号码.
问题:我的模式很接近,但我需要一些帮助来摆脱电话号码之前的任何文字.如何摆脱前面的字符串“嘿我的手机是”?
$pattern = '/.*?(?:1(?:[. -])?)?(?:\((?=\d{3}\)))?([2-9]\d{2})'
.'(?:(?<=\(\d{3})\))? ?(?:(?<=\d{3})[.-])?([2-9]\d{2})'
.'[. -]?(\d{4})(?: (?i:ext)\.? ?(\d{1,5}))?.*?/';;
$subject = 'Hey my phone is 911-628-4539, call me tonight at 9:16:00pm, my room is 122-1001';
preg_match($pattern, $subject, $match);
print_r($match);
产量
Array ( [0] => Hey my phone is 911-628-4539 [1] => 911 [2] => 628 [3] => 4539 )