Как мне вернуть только согласованную часть?

#php

#php

Вопрос:

 $string='this dog is done';
preg_match('/^this dog is [^.] /',$string,$m);
echo $m[0]."n"; // prints "this dog is done"
  

Как мне просто выполнить ‘done’, без остальной части строки?

Ответ №1:

Из документации:

Если указано совпадение, то оно заполняется результатами поиска. $matches[0] будет содержать текст, соответствующий полному шаблону, $matches[1] будет содержать текст, соответствующий первому захваченному вложенному шаблону, заключенному в скобки, и так далее.

Итак:

 $string='this dog is done';
preg_match('/^this dog is ([^.] )/',$string,$m);
echo $m[1]."n";