$re = '~([^\d\s]+|\s\d{1,2}[\s\,])*(\d{3}[^\d\n]*\d{3}[^\d\n]*\d{4})*([^\d\s]+|\s\d{1,2}[\s\,])*~i';
$str = '#input. Hello, there are 24 months in 2 years. also, there is a phone number here in this line, 555-555-5555
but did you know, the output now has 2, 4, and 2 as well as the number which we dont want?
555%555(5555
5555555855
555a555~5555
555 555 5555
555.555.5555
';
$subst = "$2";
$result = preg_replace($re, $subst, $str);
echo "The result of the substitution is ".$result;
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php