import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\/\\*\\*\\s*@ngInject\\s*\\*\\/\\n*\\s*function\\s+(\\w+)\\((.*)\\) \\{";
final String string = "define([], function () {\n"
+ " 'use strict';\n\n"
+ " /** @ngInject */\n"
+ " function ideasHomeController($scope, ideasDataSvc) {\n"
+ " $scope.ideaName = \"Todo List\";\n\n"
+ " $scope.gridOptions = {\n"
+ " data: 'ideas',\n"
+ " columnDefs: [\n"
+ " {field: 'name', displayName: 'Name'},\n"
+ " {field: 'technologies', displayName: 'Technologies'},\n"
+ " {field: 'platform', displayName: 'Platforms'},\n"
+ " {field: 'status', displayName: 'Status'},\n"
+ " {field: 'devsNeeded', displayName: 'Vacancies'},\n"
+ " {\n"
+ " field: 'id',\n"
+ " displayName: 'View Details',\n"
+ " cellTemplate: '<a ng-href=\"#/details/{{row.getProperty(col.field)}}\">View Details</a>'\n"
+ " }\n"
+ " ],\n"
+ " enableColumnResize: true\n"
+ " };\n\n"
+ " ideasDataSvc.allIdeas().then(function (result) {\n"
+ " $scope.ideas = result;\n"
+ " console.log($scope.ideas);\n"
+ " });\n"
+ " }\n\n"
+ " ideasHomeController.$inject = ['$scope', 'ideasDataSvc'];\n\n"
+ " return ideasHomeController;\n"
+ "});";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html