0
私は正規表現でPHP |正規表現
$f = function($doc)
{
$data = [];
preg_match_all("/[\s]*[\/\*\s]*(.+)[\/\*\s]*/i", $doc, $matches);
var_dump($matches);
};
$f("
/**
* test
*
* @param string \$comment
*
* @return array
*/
");
ダンプ(それがあるべきようにすべてがある)のキャプチャに問題がある:私はこの
$f("/** @var array ___TEST___ */");
ダンプを行う場合
array(3) {
[0]=>
string(4) "test"
[1]=>
string(22) "@param string $comment"
[2]=>
string(13) "@return array"
}
を:
array(1) {
[0]=>
string(34) "@var array ___TEST___ */"
}
なぜ最後の2文字(* /)でキャプチャされるのですか?
と一致する理由ですか?私はあなたがキャラクタークラスを使ってここでミスしていると思う。キャプチャグループ1に '@var array ___TEST___'が必要ですか?この質問のタイトルも良いものではありません。質問が何を求めているのかを詳しく説明するタイトルを付ける必要があります。 – chris85
[これはできます](https://regex101.com/r/Uem2BC/1)? –
正規表現を使ってホイールを再作成するのではなく、[phpDocumentorのReflectionDocBlock](https://github.com/phpDocumentor/ReflectionDocBlock) –