使用正则表达式在括号之间获取文本

时间:2013-07-29 12:45:31

标签: php regex

我遇到了问题

我尝试在parantheses之间获取文本

例如这是输入

$str = "var map = new google.maps.Map(document.getElementById('tlt_map'), { minZoom: 9,  zoom: 14, center: new google.maps.LatLng(33.5802, -7.63349), mapTypeId: google.maps.MapTypeId.ROADMAP });"; 

我想要的输出:

33.5802, -7.63349

提前谢谢

3 个答案:

答案 0 :(得分:2)

您应该在此正则表达式preg_match中使用/google\.maps\.LatLng\(([^)]+)\)/功能,或者如果您希望分隔组中的每个数字都使用/google\.maps\.LatLng\(([^,]+),([^)]+)\)/

答案 1 :(得分:0)

$str = "var map = new google.maps.Map(document.getElementById('tlt_map'), { minZoom: 9,  zoom: 14, center: new google.maps.LatLng(33.5802, -7.63349), mapTypeId: google.maps.MapTypeId.ROADMAP });"; 
$newStr = preg_replace('#^.+\.maps\.LatLng\(([^\)]+)\).+$#','$1',$str);
var_dump($newStr);//string(17) "33.5802, -7.63349" 

答案 2 :(得分:0)

$str = "var map = new google.maps.Map(document.getElementById('tlt_map'), { minZoom: 9,  zoom: 14, center: new google.maps.LatLng(33.5802, -7.63349), mapTypeId: google.maps.MapTypeId.ROADMAP });"; 

preg_match('/google.maps.LatLng\(([^,]+),([^)]+)\)/', $str, $matches);

echo $matches[1]; // 33.5802
echo $matches[2]; // -7.63349