import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:doFilter\\s*[:=]\\s*function|function\\s*doFilter)\\([^)]*\\)\\s*\\{((?:[^\\{\\}]+|\\{[^\\}]+\\})*)\\}";
final String string = "doFilter : function(){\n"
+ " var filters = $$('#'+this.containerId+' .filter input', '#'+this.containerId+' .filter select');\n"
+ " var elements = [];\n"
+ " for(var i in filters){\n"
+ " if(filters[i].value && filters[i].value.length) elements.push(filters[i]);\n"
+ " }\n"
+ " if (!this.doFilterCallback || (this.doFilterCallback && this.doFilterCallback())) {\n"
+ " this.reload(this.addVarToUrl(this.filterVar, encode_base64(Form.serializeElements(elements))));\n"
+ " }\n"
+ " },\n"
+ "resetFilter = function(){\n"
+ " this.reload(this.addVarToUrl(this.filterVar, ''));\n"
+ "},\n"
+ "checkCheckboxes : function(element){\n"
+ " elements = Element.select($(this.containerId), 'input[name=\"'+element.name+'\"]');\n"
+ " for(var i=0; i<elements.length;i++){\n"
+ " this.setCheckboxChecked(elements[i], element.checked);\n"
+ " }\n"
+ "},\n"
+ "function doFilter(grid, event){\n"
+ " var element = Event.findElement(event, 'tr');\n"
+ " if(['a', 'input', 'select', 'option'].indexOf(Event.element(event).tagName.toLowerCase())!=-1) {\n"
+ " return;\n"
+ " }\n\n"
+ " if(element.title){\n"
+ " setLocation(element.title);\n"
+ " }\n"
+ "},\n"
+ "function openGridRow(grid, event){\n"
+ " var element = Event.findElement(event, 'tr');\n"
+ " if(['a', 'input', 'select', 'option'].indexOf(Event.element(event).tagName.toLowerCase())!=-1) {\n"
+ " return;\n"
+ " }\n\n"
+ " if(element.title){\n"
+ " setLocation(element.title);\n"
+ " }\n"
+ "}\n";
final Pattern pattern = Pattern.compile(regex);
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