使用PHP

时间:2015-05-18 15:31:19

标签: php drupal-7 preg-replace

我从包含以下值的文件中提取了doc comment块:

[0] => /**
        * Shows this block on only the listed pages.
        */
[1] => /**
        * Shows this block if the associated PHP code returns TRUE.
        */
[2] => /**
        * Implements hook_help().
        */
[3] => /**
        * Implements hook_theme().
        */

现在我需要在实施之后提取所有“ hook _ * ”的文本。

所以我的最终输出应该是一个数组,其值如:

$hooks = array('hook_help', 'hook_theme');

我应该使用哪种preg_replace表达式?

1 个答案:

答案 0 :(得分:1)

假设持有评论的数组是$comments,则以下内容将执行:

$hooks = array();

foreach($comments as $comment) {
    if (preg_match("/Implements (hook_\w+)\(\)/", $comment, $matches))
        $hooks[] = $matches[1];
}

这将匹配具有单词Implements,后跟hook_和至少一个字母后跟()的文本。然后将存储在$matches[1]第一个带括号的子模式中,即钩子_...