PHP:如何匹配文档中所有出现的正则表达式模式

时间:2011-11-27 13:22:25

标签: php regex preg-match-all data-munging

我正在对文件进行一些数据处理,这些文件可能(或可能不是 - 视情况而定)在其内容中出现正则表达式模式的发生。

我想编写一个用于处理文档的PHP函数 - 函数的工作是返回文档中所有匹配模式声音的数组(如果它们存在),或者如果没有则返回空数组找到了比赛。

我确信这涉及使用PHP函数preg_match_all,但是,我不理解preg_match_all返回的数组的格式。我只想返回匹配的1维(即非嵌套数组),如下所示:

<?php 

   $pattern = "^[h].[a-z]{3,4}";
   $doc = file_get_contents('some_pathname');

   function get_matching_patterns($pattern, $doc){
     $out = array();

     if (strlen($doc) && strlen($pattern)){
        // not sure about this - I don't like the complicated nested array returned
        // by preg_match-all
        preg_match_all($pattern, $doc, $out); 
     }

     return out;
   }
?>

1 个答案:

答案 0 :(得分:0)

  • 你错过了$
  • 在您的情况下,您只需返回$out[0]
  • 即可