如何解析“N / A - -0.09%”并在PHP中第一个连字符后提取数字?

时间:2011-12-03 13:07:37

标签: php html regex string parsing

这是我的字符串:“N / A - -0.09%”(包括双引号和我要解剖的字符串的一部分)

这是我的代码:

$url = 'abc123.php';    
$data = file_get_contents($url);  //$data contains "N/A - -0.09%" (the string to parse)

$regex = '/""/';
preg_match($regex,$data,$match);
var_dump($match);

如何在第一个连字符后但在%符号之前隔离所有内容?

我知道这个字符串在前面总是有“”N / A - “,而我只想用负号来提取数字,如果它是负数。

我想将数字-0.09分配给变量。数量可能是正数或负数。如果它是积极的,那么就没有爆炸,例如。 0.123。如果它是否定的,除了第一个之外还会有第二个连字符,例如。 -2.5。

请帮我制定正则表达式部分,将-0.09隔离成一个变量,比如$ number。谢谢!

1 个答案:

答案 0 :(得分:1)

我不会在这里使用正则表达式,我只删除两个引号(使用str_replace()替换"除外),然后将字符串拆分为单词(使用explode()使用''作为分隔符),然后使用array_pop()获取最后一个“单词”。

url = 'abc123.php';    
$data = file_get_contents($url);  //$data contains "N/A - -0.09%" (the string to parse)

$match = array_pop(explode(' ', str_replace("\"", '', $data)));
echo $match . "\n";