我正在尝试将9位数字字符串与以下代码匹配,但它只返回此<
查看远程页面的源代码,这是我想要匹配的示例{{1 }}
&cd=225730313"
答案 0 :(得分:4)
你忘记了preg_match的第二个参数。您也可以考虑提取括号(索引1)而不是整个模式(索引0)。
$url = file_get_contents($source);
preg_match('/([0-9]{9})/', $url, $match);
echo $match[1];
我认为你获得<
的原因是因为你之前使用过$ match,它包含一个以<
开头的字符串。你问题中使用的preg_match不会改变$ match,因此$ match [0]是$ match中包含的字符串的第一个字符(字符串可以像PHP中的数组一样访问)。
答案 1 :(得分:0)
怎么样:
preg_match('/^[0-9]{9}+$/', $match)
或者这个:
preg_match('/\d{9}/', $match)
答案 2 :(得分:0)
$url = file_get_contents($source);
preg_match('/([0-9]{9})/', $match);
echo $match[1];
索引0
包含与整个模式的匹配,1
第一个子模式,依此类推。
编辑:
要获得&cd=
之后的数字我建议扩展模式,它也匹配这个数字。
/&cd=([0-9]{9})/