解析部分 html 字符串并隔离特定数字
我需要从以下文本中获取页数:
<font size="1" color="blue" face="Verdana, Arial">Page 1 of 5 / 22 Records
我没有正则表达式的经验。因为我主要用 C 编程,所以我尝试了这个:
sscanf($result, "Page 1 of %d", $Npages);
但它不起作用。
I need to grab the number of pages from the following text:
<font size="1" color="blue" face="Verdana, Arial">Page 1 of 5 / 22 Records
I have no experience with regex. Since I mostly program in C, I tried this:
sscanf($result, "Page 1 of %d", $Npages);
But it doesn't work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你快到了。 PHP 的
sscanf
可以返回输出,也可以获取一个引用来填充解析的值。在您的代码中,您似乎正在尝试使用引用,但您没有这样指定它。 PHP 中的引用由变量名之前的&
指定,因此您可以使用:或者,如果您不这样做,
sscanf
将返回所有解析值的数组不通过引用传递任何变量:然后您可以使用
list
将该数组分配给变量:You're almost there. PHP's
sscanf
can either return the output, or take a reference to fill with the parsed value. In your code, it looks like you're trying to use a reference, but you're not specifying it as such. A reference in PHP is specified by a&
before the variable name, so you could have used:Alternately,
sscanf
will return an array of all parsed values if you don't pass any variables by reference:You could then use
list
to assign that array to variables:尝试:
Try:
这里:
第二个数组元素将包含#。
巴里
Here:
Second array element will have the #.
Barry
$str= 你的字符串;
preg_match('/第 \d+ 页,共 \d+ / (\d+) 条记录/', $str, $matches);
print_r($匹配);
$str= YOUT STRING;
preg_match('/Page \d+ of \d+ / (\d+) Records/', $str, $matches);
print_r($matches);