preg_match 或 preg_replace 仅从 html 代码中获取数字
preg_match or preg_replace to get only number from html code
我很难从 html 代码的特定部分获取数字,我正在解析一页,内容输出如下所示。
<div class="priceitem"> 1,098 USD <span id="XUwt-price-mb-aE068a15dcca8E168a15dcca8-tooltipIcon" class="tooltip-icon afterPrice info-icon"> <svg class="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="100%" height="100%"><use xlink:href="#common-icon-icon-info"></use></svg> </span> <br></div>
我正在使用简单的htmldom 来获取内容,因此 priceitem
中的所有内容都会得到输出。我可以以某种方式使用 preg_match 来匹配模式或 preg_replace 来获得像 1,098
.
这样的价格数字吗
价格可能会改变,所以有时它只会 29 usd
输出 29 USD
,有时价格可以是 305 USD
,但超过 1k 它将有逗号,我没有'真的不需要。
这是我对一切的尝试:
foreach($html->find('div.priceitem') as $element) {
$pricenum = preg_match("/([^\s]+)/","", $element->innertext);
echo $pricenum;
}
这是一个可以让您获得所有可能价格的模式:
(\d{1,3}(?:,\d{1,3})*)+(?= USD)
想法是,数字以 1-3 位数字为一组,允许以逗号开头的组,但在常规块之后不需要。 USD
作为主播。
但是,如果您只对整数部分感兴趣,删除逗号仍然是最佳选择:str_replace(',', '' , $string);
对于 int 值,删除逗号更有意义,然后对于 /\d+/
preg_match
我很难从 html 代码的特定部分获取数字,我正在解析一页,内容输出如下所示。
<div class="priceitem"> 1,098 USD <span id="XUwt-price-mb-aE068a15dcca8E168a15dcca8-tooltipIcon" class="tooltip-icon afterPrice info-icon"> <svg class="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="100%" height="100%"><use xlink:href="#common-icon-icon-info"></use></svg> </span> <br></div>
我正在使用简单的htmldom 来获取内容,因此 priceitem
中的所有内容都会得到输出。我可以以某种方式使用 preg_match 来匹配模式或 preg_replace 来获得像 1,098
.
价格可能会改变,所以有时它只会 29 usd
输出 29 USD
,有时价格可以是 305 USD
,但超过 1k 它将有逗号,我没有'真的不需要。
这是我对一切的尝试:
foreach($html->find('div.priceitem') as $element) {
$pricenum = preg_match("/([^\s]+)/","", $element->innertext);
echo $pricenum;
}
这是一个可以让您获得所有可能价格的模式:
(\d{1,3}(?:,\d{1,3})*)+(?= USD)
想法是,数字以 1-3 位数字为一组,允许以逗号开头的组,但在常规块之后不需要。 USD
作为主播。
但是,如果您只对整数部分感兴趣,删除逗号仍然是最佳选择:str_replace(',', '' , $string);
对于 int 值,删除逗号更有意义,然后对于 /\d+/
preg_match