Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP正则表达式删除不需要的数据_Php_Regex_String - Fatal编程技术网

PHP正则表达式删除不需要的数据

PHP正则表达式删除不需要的数据,php,regex,string,Php,Regex,String,我希望能够从数据字符串中删除内容 这是来自GoogleMapsAPI的一个示例字符串 Distance: 70.5&#160;mi (about 1 hour 12 mins)<br/>Map data &#169;2009 Google 距离:70.5 ;mi(约1小时12分钟)地图数据©;2009年谷歌 我想要括号中的所有内容()。所以我可以用preg_split删除任意一方的所有内容吗?这是基本的正则表达式问题。使用类似这样的内容:preg

我希望能够从数据字符串中删除内容

这是来自GoogleMapsAPI的一个示例字符串

Distance: 70.5&#160;mi (about 1 hour 12 mins)<br/>Map data &#169;2009 Google 
距离:70.5 ;mi(约1小时12分钟)
地图数据©;2009年谷歌

我想要括号中的所有内容
()
。所以我可以用
preg_split
删除任意一方的所有内容吗?

这是基本的正则表达式问题。使用类似这样的内容:
preg\u match('/\(.*?\)/',$s,$m)
其中
$s
是您的字符串。匹配项将位于
$m
数组中。

这是基本的正则表达式问题。使用类似这样的内容:
preg\u match('/\(.*?\)/',$s,$m)
其中
$s
是您的字符串。匹配项将位于
$m
数组中。

您可以使用
preg\u replace

if (preg_match('/\(([^)]*)\)/', $text, $regs)) {
    $result = $regs[2];
    // $result now contains everything inside the backets
}
$timeDistance = preg_replace(array('/(.*)([(])(.*)([)])/'), array('\3',''), $googleString );

这将提取参数之间的文本。

您可以使用
preg\u replace

$timeDistance = preg_replace(array('/(.*)([(])(.*)([)])/'), array('\3',''), $googleString );
这样可以提取两个参数之间的文本。

这样更好:

$str = "Distance: 70.5&#160;mi (about 1 hour 12 mins)<br/>Map data &#169;2009 Google";

$start = strpos($str, '(') + 1;
$end = strpos($str, ')');
$content = substr($str, $start, $end - $start);
这样更好:

$str = "Distance: 70.5&#160;mi (about 1 hour 12 mins)<br/>Map data &#169;2009 Google";

$start = strpos($str, '(') + 1;
$end = strpos($str, ')');
$content = substr($str, $start, $end - $start);

//步骤1
$string=“距离:70.5英里(约1小时12分钟)
地图数据©;2009谷歌”; $pieces=分解(“(”,$string); echo$pieces[0];//应该是:距离:70.5 ;mi echo$pieces[1];//应该是:大约1小时12分钟)
地图数据©;2009年谷歌”; //步骤2 $keeper=爆炸(“)”,$pieces[1]); echo$keeper[0];//应该是:大约1小时12分钟 echo$keeper[1];//
地图数据©;2009谷歌”;

//步骤1
$string=“距离:70.5英里(约1小时12分钟)
地图数据©;2009谷歌”; $pieces=分解(“(”,$string); echo$pieces[0];//应该是:距离:70.5 ;mi echo$pieces[1];//应该是:大约1小时12分钟)
地图数据©;2009年谷歌”; //步骤2 $keeper=爆炸(“)”,$pieces[1]); echo$keeper[0];//应该是:大约1小时12分钟 echo$keeper[1];//
地图数据©;2009谷歌”;
你只想得到“大约1小时12分钟”,或者删除所有内容,然后得到:“距离:70.5 ;mi
地图数据©;2009谷歌”谢谢你的回答。你只想得到“大约1小时12分钟”,或者删除所有内容,然后得到:“距离:70.5 ;mi
地图数据©;2009谷歌”谢谢你的回答。这是一个
$keeper
。。。但是您需要这两个阵列吗?真的吗?这是一个
$keeper
。。。但是您需要这两个阵列吗?真正地