我想使用正则表达式从网页中检索数值。
(我无法让simple_php_dom处理https请求。)
以下是包含数值( 78 )
的代码<p class="b45">
<a href="/?page=browseAllPages&idCategory=1&idUser=12345">
Display all tables (78)
</a></p>
这是我使用的命令
preg_match_all("/Display all tables \((.*)\)/", $file_content, $matches);
var_dump($matches[0][0]);
但它返回
string(137) "
Display all tables (78)
"
编辑:我的错误
var_dump($matches[1][0]);
是正确的,但它返回
string(9) " (78)"
返回值
echo $matches[1][0];
:)
答案 0 :(得分:3)
请改为尝试:
preg_match_all('/Display all tables \((\d+)\)/', $file_content, $matches);
$mtch = (int)$matches[1][0];
var_dump($mtch);
答案 1 :(得分:0)
试试这个:
<?php
$string = <<<EOS
<p class="b45">
<a href="/?page=browseAllPages&idCategory=1&idUser=12345">
Display all tables (78)
</a></p>
EOS;
preg_match_all("/Display all tables \((.*)\)/", $string, $matches);
echo $matches[1][0] . " - " . gettype($matches[1][0]) . "\n";
echo (int)$matches[1][0] . " - " . gettype((int)$matches[1][0]) . "\n";
毕竟你得到的子字符串与你的正则表达式相匹配。即使你这样做:
preg_match_all("/Display all tables \((\d+)\)/", $string, $matches);
但是你可以将它转换为整数。