php preg_match_括号中的数字

时间:2012-07-21 15:17:59

标签: php regex preg-match-all numeric

我正在尝试加载远程网站并获取括号内的所有数字。但最终发生的事情是它只匹配最后一个值。

我的正则表达式错了吗?我使用正确的旗帜吗?

我在第二个$ html变量中添加了它应匹配的示例。

    //$html = file_get_contents("http://example.com/test.html");

    $html = "(1234) (12) (1)  \r\n  (1346326)";
    preg_match_all("^[(\d)]+$^", $html, $matches, PREG_PATTERN_ORDER);
    print_r($matches);
    echo "<br>";
    foreach ($matches as $val) {
        echo "matched: " . $val[0] . "\n";

    }

感谢。

2 个答案:

答案 0 :(得分:4)

怎么样:

preg_match_all("/\((\d+)\)/", $html, $matches, PREG_PATTERN_ORDER); 
print_r($matches[1]);

答案 1 :(得分:0)

我看到两个可能的问题。

首先,你从开始(^)到结束($)进行匹配,它只匹配行开头和行结束之间的匹配。

其次,你很可能想要使用/ gs正则表达式参数来全押它。

preg_match_all("/\b(\d+)\b/gs" ...