php正则表达式-带有模式的bug

php正则表达式-带有模式的bug,php,regex,Php,Regex,只是想知道是否有人能帮助我理解为什么我的正则表达式匹配某一行。以下是输入数据: Array ( [0] => [24;1H [24;16H [24;1H [?25h [24;16H [24;16Hshow vlans [24;16H [?25h [24;26H [24;0H E [24;1H [24;26H [24;1H [2K [24;1H [?25h [24;1H [1;24r [24;1H [1] => Status and Counters - VLAN I

只是想知道是否有人能帮助我理解为什么我的正则表达式匹配某一行。以下是输入数据:

         Array ( [0] => [24;1H [24;16H [24;1H [?25h [24;16H [24;16Hshow vlans [24;16H [?25h [24;26H [24;0H E [24;1H [24;26H [24;1H [2K [24;1H [?25h [24;1H [1;24r [24;1H [1] => Status and Counters - VLAN Information [2] => [3] => Maximum VLANs to support : 256 [4] => Primary VLAN : MANAGEMENT [5] => Management VLAN : [6] => [7] => VLAN ID Name | Status Voice Jumbo [8] => ------- -------------------------------- + ---------- ----- ----- [9] => 1 DEFAULT_VLAN | Port-based No No [10] => 3 MANAGEMENT | Port-based No No [11] => 8 SERVER_VLAN | Port-based No No [12] => 16 iLOSERS | Port-based No No [13] => 20 BACS_VLAN | Port-based No No [14] => 33 VLAN_33 | Port-based No No [15] => 64 ISM_VLAN | Port-based No No [16] => 65 DSLAM1 | Port-based No No [17] => 80 VOIP_VLAN | Port-based No No [18] => 96 DZONE | Port-based No No [19] => 128 BACNET_128 | Port-based No No [20] => 131 BACNET_131 | Port-based No No [21] => [22] => [23] => [1;24r [24;1H [24;1H [2K [24;1H [?25h [24;1H [24;11# ) 
这是我的代码:

  $vlandetailsArray = array();
  foreach ($data as $vlandetails) {

   $pattern = '/(\s+)([0-9]*)(\s+)([a-z_0-9]*)(\s*)(\|)(\s+)([a-z0-9_-]*)(\s*)(\w*)(\s*)(\w*)/i';
   if (preg_match($pattern, $vlandetails, $matches)) {
      echo 'raw data is: '.($vlandetails).'<br>';   
      echo 'results from print_r:';
      print_r($matches[2]);       
      echo '<br>VlanId is: '.$matches[2].'<br>';
      } //end if
    } //end for
我的问题是,为什么第一个项目不是以数字开头时会匹配? 你介意指出我的bug在哪里或者我不明白什么吗


谢谢

将正则表达式中的
([0-9]*)
更改为
([0-9]+)

我看不出你的标题与你的问题有什么关系。即使在输出中,echo和print\r也显示相同的数字。是的,你是对的。我开始了两个不同的问题,并将问题1的内容发布到问题2的窗口中。很抱歉给你带来了困惑。谢谢你的耐心!我看这个太久了。我错过了。丹。
raw data is: VLAN ID Name | Status Voice Jumbo
results from print_r:
VlanId is:
raw data is: 1 DEFAULT_VLAN | Port-based No No
results from print_r:1
VlanId is: 1
raw data is: 3 MANAGEMENT | Port-based No No
results from print_r:3
VlanId is: 3
raw data is: 8 SERVER_VLAN | Port-based No No
results from print_r:8