$re = '/(function)?\s*doFilter\s*(:|=)?\s*(function)?\s*\(/';
$str = 'doFilter : function(){
var filters = $$(\'#\'+this.containerId+\' .filter input\', \'#\'+this.containerId+\' .filter select\');
var elements = [];
for(var i in filters){
if(filters[i].value && filters[i].value.length) elements.push(filters[i]);
}
if (!this.doFilterCallback || (this.doFilterCallback && this.doFilterCallback())) {
this.reload(this.addVarToUrl(this.filterVar, encode_base64(Form.serializeElements(elements))));
}
},
doFilter = function(){
this.reload(this.addVarToUrl(this.filterVar, \'\'));
},
function doFilter(grid, event){
var element = Event.findElement(event, \'tr\');
if([\'a\', \'input\', \'select\', \'option\'].indexOf(Event.element(event).tagName.toLowerCase())!=-1) {
return;
}
if(element.title){
setLocation(element.title);
}
}';
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