Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.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_Html_Regex - Fatal编程技术网

Php 如何找到前面有标记的数字,然后将该数字设为变量?

Php 如何找到前面有标记的数字,然后将该数字设为变量?,php,html,regex,Php,Html,Regex,我想找到前面有class=“g-b”>$的所有数字,然后将该数字设为变量 给定如下HTML代码: class="g-b">$195.00</div><span class="ship fee">+$10.00 shipping class=“g-b”>195.00美元+10.00美元运费 现在我想我应该使用regex来查找包含class=“g-b”>$的术语,但当我只需要数字时,我也会获取前面的文本。有办法只取号码吗?我是不是应该再做一次正则表达式来得到这个号码

我想找到前面有
class=“g-b”>$
的所有数字,然后将该数字设为变量

给定如下HTML代码:

class="g-b">$195.00</div><span class="ship fee">+$10.00 shipping
class=“g-b”>195.00美元+10.00美元运费
现在我想我应该使用regex来查找包含
class=“g-b”>$
的术语,但当我只需要数字时,我也会获取前面的文本。有办法只取号码吗?我是不是应该再做一次正则表达式来得到这个号码

regexp = /class=\"g-b\">\$(\d+\.?\d{0,2})\+\$(\d+\.\d{0,2}) /;
x = regexp.exec( text );

将数字保存为数组“x”

从我的交互式php shell(从php-a开始):

php>a='class=“g-b”>195.00美元+10.00美元运费'
php>preg\u match('/class=“g-b”>\$([\d\.]+)/g',$a,$matches);
php>var_dump($matches);
阵列(2){
[0]=>
字符串(19)“class=“g-b”>195.00美元”
[1]=>
字符串(7)“195.00”
}

希望这有帮助。

您想使用“向前看”只获取数字:

就像下面。。。 “如果你想得到整数

(?<="g-b">$)\d+
(?$)\d+
'或者如果需要整数和小数点:

 (?<="g-b">$)\d+[.]\d+
(?$)\d+[.]\d+

这个数字前面不是也有
$
吗?也许从这里开始学习正则表达式:你想要所有的数字吗?还是一个或几个?你想要的输出是什么?
 (?<="g-b">$)\d+[.]\d+