$re = '/\/\*\*\s*@ngInject\s*\*\/\n*\s*function\s+(\w+)\((.*)\) \{/mi';
$str = 'define([], function () {
\'use strict\';
/** @ngInject */
function ideasHomeController($scope, ideasDataSvc) {
$scope.ideaName = "Todo List";
$scope.gridOptions = {
data: \'ideas\',
columnDefs: [
{field: \'name\', displayName: \'Name\'},
{field: \'technologies\', displayName: \'Technologies\'},
{field: \'platform\', displayName: \'Platforms\'},
{field: \'status\', displayName: \'Status\'},
{field: \'devsNeeded\', displayName: \'Vacancies\'},
{
field: \'id\',
displayName: \'View Details\',
cellTemplate: \'<a ng-href="#/details/{{row.getProperty(col.field)}}">View Details</a>\'
}
],
enableColumnResize: true
};
ideasDataSvc.allIdeas().then(function (result) {
$scope.ideas = result;
console.log($scope.ideas);
});
}
ideasHomeController.$inject = [\'$scope\', \'ideasDataSvc\'];
return ideasHomeController;
});';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php