re = /^([\s]+)?(var|let|const)?([\s]+)?([a-z=\s]+)(\()(.+)?(\))([\s]+)?([\n]+)?(\{)/mi
str = 'function func (foo) {}
var func = function() {}
function func () {
}
var func = function() {
}
function func ()
{
}
var func = function()
{
}
function func () {}
var func = function() {}
function func () {
}
var func = function() {
}
function func ()
{
}
var func = function()
{
}
function func () {}
var func = function() {}
function func () {
}
var func = function() {
}
function func ()
{
}
var func = function()
{
}'
# Print the match result
str.scan(re) do |match|
puts match.to_s
end
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 Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html