<?php
$url = 'here i give a url';
$raw = file_get_contents($url);
preg_match('/\w(\d*).*?\$/',$raw,$matches);
echo $matches;
?>
在给定的外部网站中,我需要最接近数字到符号的首次出现,此处符号为$
这是我现在尝试的,我只是打印“阵列”
答案 0 :(得分:2)
如果您给出以下输入,我是否正确解释您的问题:
<div>
<span>12.92$</span>
<span>24.82$</span>
</div>
想要回到12.92 $?即你想要从网站上第一次出现一笔钱吗?
如果是,请尝试以下操作:
// Will find any number on the form xyz.abc.
// Will NOT cope with formatting such as 12 523.25 or 12,523.25
$regex = '/(\d+(:?.\d+)?) *([$])/'
preg_match($regex, $website, $matches);
//matches[0] => 123.45$
//matches[1] => 123.45
//matches[2] => $
另一个更雄心勃勃的尝试(可能更经常失败)将是:
// Will find any number on the form xyz.abc.
// Attempts to cope with formatting such as 12 523.25 or 12,523.25
$regex = '/(\d{1,3}(:?[, ]?\d{3})*(:?.\d+)?) *([$])/'
preg_match($regex, $website, $matches);
//matches[0] => 12 233.45$
//matches[1] => 12 233.45
//matches[2] => $
答案 1 :(得分:0)
如果你打印阵列&gt;尝试echo $ matches [0];或echo $ matches [1];
// update
// test2.php lkadf $ lksajdf;
// test.php
$url = 'test2.php';
$raw = file_get_contents($url);
preg_match('/\w(\d*).*?\$/',$raw,$matches);
echo $matches[0]; ?>
将输出:
lkadf $(第一部分)。
答案 2 :(得分:0)
使用preg匹配$ matches [1],但您需要将正则表达式更改为
preg_match('/\w(\d+).*?\$/',$raw,$matches);
当你真正想要至少一个数字时,*匹配零次或多次。将其更改为+,以便匹配一个或多个。
答案 3 :(得分:0)
$regex = '/([$])* (\d+(:?.\d+)?) /' ;
preg_match($regex, $str, $matches);
它的工作原理我只需转换成199美元!
现在我还需要一个只获得第二个外表的选项:
code .....
$199 ......
....
$299
....
匹配[2]应打印299