2014-11-03 63 views
0

如何运行preg_match_all()?preg_match_all()从字符串中获取一个数字

我想从一个字符串编号:

例如:我的结果:

(62)

我只想数量。并想要对几个字符串做这件事。 这就是试试我做:

foreach($html2->find('small[class=menu-item__label__count]') as $aholder) { 

$holderdes=$aholder->outertext; 

preg_match_all('/([0-9]+)/', $holderdes,$num); 

echo $num.'<br>'; 

回报率为 “阵列阵列阵列阵列...”

+0

尝试'的print_r($ NUM)' – SBH 2014-11-03 12:57:03

+0

的var_dump($ NUM)是你的答案 – 2014-11-03 12:58:08

回答

0

您应该打印$num[0];

foreach($num[0] as $pattern) 
    // do something with $pattern 

而且您正则表达式看起来是错误的。如果你想匹配(61)你需要做的(包括括号):

'/\(([0-9]+)\)/' 
0

如果有像"(62)"

一个字符串,则您可以使用此:

<?php 
    $str = '(62)'; 
    preg_match_all('!\d+!', $str, $matches); 
    print_r($matches); 
?> 

输出:

Array 
( 
    [0] => Array 
     (
      [0] => 62 
     ) 

) 

此外,如果您试图回声阵列($num)和你得到没有errors转错误报告调试!

error_reporting(E_ALL); 
ini_set("display_errors", 1); 
0

的preg_match返回一个数组如从documentation看到。

,如果你想看到的阵列中的所有内容使用

var_dump($sum); 

如果你只需要匹配

,你必须解决特定部分。

看一看为正则表达式快速参考

  • [ABC]单个字符:A,B或C
  • [^ ABC]的任何单个字符但 的a,b,或c
  • [AZ]的范围内的任何单个字符AZ - [A-ZA-Z]范围AZ或AZ
  • ^启动行的
  • 线的$结束 任何单个字符 - \ A的开始字符串
  • \ z字符串结尾
  • 。任何单个字符
  • \ S任何空白字符
  • \ S任何非空白字符
  • \ d任何数字
  • \ d任何非数字
  • \ W任何字字符(字母,数字,下划线)
  • \ W任何非单词字符 - \ b中所述单词边界字符
  • (...)捕捉一切封闭
  • (A | b)a或b
  • a?零或
  • 一个*零的一个或多个的一个
  • 一个+的一种或多种的
  • 一个{3}的
  • 一个{3,} 3或更大的
  • 恰好3
  • 一个{3,6}之间3和6的一个
0

此功能是完全explained上php.net在从一个字符串数组编号提取这个非常简单的例子

查找:

<?php 
$strings = array ("fHzZGh4JMyfpc5visCC3q1a1ICBLWXnmfxoRa70S9HXHjBSVI4", 
    "1LRWmzTQBErP6kIqXRLMgzWoVdOJKrLpUbL99sZ3XdtscAvydG", 
    "5OMbG1hFMrTkMeThw64E80QqfLvxbZjo3tlsVzeJiDCDAn4D6C", 
    "lrYFqKKtarRHfteYHUDx4KAEjssvs12Ix5u3YGQKATQBxtqAhn", 
    "W3a3n0jzXtM2l5i8tOVnxPbBeGAz0ChzDQ6qhReQkdHTQ4sLmz"); 
$nums = array(); 
foreach ($strings as $string) { 
    preg_match_all('/\d+/', $string, $matches); 
    $nums[] = $matches; 
} 

print_r($nums); 

这是输出:

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [0] => 4 
        [1] => 5 
        [2] => 3 
        [3] => 1 
        [4] => 1 
        [5] => 70 
        [6] => 9 
        [7] => 4 
       ) 

     ) 

    [1] => Array 
     (
      [0] => Array 
       (
        [0] => 1 
        [1] => 6 
        [2] => 99 
        [3] => 3 
       ) 

     ) 

    [2] => Array 
     (
      [0] => Array 
       (
        [0] => 5 
        [1] => 1 
        [2] => 64 
        [3] => 80 
        [4] => 3 
        [5] => 4 
        [6] => 6 
       ) 

     ) 

    [3] => Array 
     (
      [0] => Array 
       (
        [0] => 4 
        [1] => 12 
        [2] => 5 
        [3] => 3 
       ) 

     ) 

    [4] => Array 
     (
      [0] => Array 
       (
        [0] => 3 
        [1] => 3 
        [2] => 0 
        [3] => 2 
        [4] => 5 
        [5] => 8 
        [6] => 0 
        [7] => 6 
        [8] => 4 
       ) 

     ) 

)