当我确定有一个不匹配的部分时,php preg_match只返回匹配的字符串部分

时间:2011-01-31 04:57:26

标签: php preg-match

所以我试图获得所有不匹配的文本,我的代码片段如下所示: Row,Col =(1,1) Row,Col =(1,2) Row,Col =(9999999,9999999) 存储在名为$ foo的数组中,我的preg_match语句如下所示:

foreach($foo as $fooPartition){
   if(preg_match("/.*\([0-9]+\, /", $fooPartition, $match)){
      $unecessaryFluff = $match[0];
      $infoINeed = $match[1];
   }
}

我继续收回$ unecessaryFluff但是当我尝试访问$ match [1]时我得到一个缺失的索引,而我的调试器验证$ match实际上只是包含字符串匹配部分的长度为1的数组,和$ match [1] DNE。

有没有人知道我做错了什么使preg_match没有按照php页面规格返回字符串的不匹配部分? (使用php 5.3.2)

1 个答案:

答案 0 :(得分:0)

如果要隔离特定字符串,则需要指定分组表达式(使用括号)。

例如,假设您只想要数字

/.*\(([0-9]+)\, /

不确定你为什么要逃避逗号,这是一个错字吗?