4

コメントの特定の部分を見つけたい。以下はいくつかの例です

/*
 * @todo name another-name taskID
 */

/* @todo name another-name taskID */

現在、次の正規表現を使用しています

'/\*[[:space:]]*(?=@todo(.*))/i'

これは以下を返します:

* @todo name another-name taskID
or
* @todo name another-name taskID */

@todo と名前だけを取得し、アスタリスクを取得するにはどうすればよいですか?

希望の出力

@todo name another-name taskID
@todo name another-name taskID
4

1 に答える 1

1

これを試して:

$str=<<<STR
/*
 * @todo name another-name taskID 1
 */

/* @todo name another-name taskID 2 */
STR;
$match=null;
preg_match_all("/\*[[:space:]]*(@todo[^(\*\/$)]*)/i",$str,$match,PREG_SET_ORDER);
print_r($match);

エコー

Array
(
    [0] => Array
        (
            [0] => * @todo name another-name taskID 1

            [1] => @todo name another-name taskID 1

        )

    [1] => Array
        (
            [0] => * @todo name another-name taskID 2 
            [1] => @todo name another-name taskID 2 
        )

)

ただし、完全な解決策ではありません(行末が であることに注意して$match[0][0]ください)。

于 2012-11-13T04:22:46.067 に答える