Вы можете соответствовать, используя это:
.*\s(.*),(.*?)\s.*
См. Этот ответ в Рубуляр .
Ответ в php:
$txt = "dfdff333 38983 33.707352,-116.272797 dfd fndfdf";
$lat = preg_replace("/.*\s(.*),.*?\s.*/", "$1", $txt);
$lon = preg_replace("/.*\s.*,(.*?)\s.*/", "$1", $txt);
echo $lat."\n"; // 33.707352
echo $lon."\n"; // -116.272797
ПримечаниеЯ использую запятую в качестве разделителя.
РЕДАКТИРОВАТЬ: вы можете использовать более конкретное регулярное выражение, например
$lat = preg_replace("/.*\s(-?\d+\.\d+),-?\d+\.\d+?\s.*/", "$1", $txt);
$lon = preg_replace("/.*\s-?\d+\.\d+,(-?\d+\.\d+?)\s.*/", "$1", $txt);
Tks @soapbox.