Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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 preg_replace正在取代一切_Php_Regex_Html Parsing_Preg Replace - Fatal编程技术网

Php preg_replace正在取代一切

Php preg_replace正在取代一切,php,regex,html-parsing,preg-replace,Php,Regex,Html Parsing,Preg Replace,我想用空字符串替换某些html标记,并且只想检索文本。下面是我想要的例子 preg_match_all("/<span id=\"priceblock_ourprice\" class=\"a-size-medium a-color-price\">(.*)<\/span>/U", $content, $matches); 尝试在正则表达式中添加问号 foreach($matches[0] as $key=>$val) { $price = preg_repl

我想用空字符串替换某些html标记,并且只想检索文本。下面是我想要的例子

preg_match_all("/<span id=\"priceblock_ourprice\" class=\"a-size-medium a-color-price\">(.*)<\/span>/U", $content, $matches);

尝试在正则表达式中添加问号

foreach($matches[0] as $key=>$val) {
  $price = preg_replace( '/<(.*?)>/', '', $val);
}
foreach($0]匹配为$key=>$val){
$price=preg_replace('/','$val);
}
这将产生查找第一个
而不是最后一个的效果。正则表达式是贪婪的,它能找到一切


另外,请记住,这样做将用每个循环替换$price。我假设在下一个循环发生之前,您正在使用$price执行某些操作,但如果没有,则应将价格存储在数组中。

尝试在正则表达式中添加问号

foreach($matches[0] as $key=>$val) {
  $price = preg_replace( '/<(.*?)>/', '', $val);
}
foreach($0]匹配为$key=>$val){
$price=preg_replace('/','$val);
}
这将产生查找第一个
而不是最后一个的效果。正则表达式是贪婪的,它能找到一切


另外,请记住,这样做将用每个循环替换$price。我假设在下一个循环发生之前,您正在使用$price执行某些操作,但是如果没有,您应该将价格存储在一个数组中。

如果它似乎比预期匹配得多,请使用
进行非贪婪匹配。贪婪(
*
)会消耗尽可能多的能量,而非贪婪(
*?
)会防止这种情况发生

preg_replace('/<(.*?)>/', '', $val);
输出

50
40

如果它似乎比预期匹配更多,则使用
进行非贪婪匹配。贪婪(
*
)会消耗尽可能多的能量,而非贪婪(
*?
)会防止这种情况发生

preg_replace('/<(.*?)>/', '', $val);
输出

50
40
50
40