Skip to main content

Regular Expression for inserting codes at the end of a function

This is a regular expression that i used to insert codes at the end of a function, the original code was created for actionscript 3, and you tweak it a  little to match your language, that is if its a C-based language.

reg  = "("+funcName+"\\([\\s\\S]*?\\)[\\s\\S]*?{[\\s\\S]*?)(?=(})[\\s\\S]*?((protected override|private|public) function))";

re = new RegExp(reg);
newCode = oldCode.replace(re, "$1 " + code);

The regular expression is
(yourFunc([\s\S]*?)[\s\S]*?{[\s\S]*?)(?=(})[\s\S]*?((protected override|private|public) function))

First it finds the function named yourFunc followed by (
Then finds the arguements but stop finding mor, the *?, once it finds the first )
Then it continues to find anything, in as3 this is the : thing, and stops after it finds {
Lastly it finds everything after {, literally everything till the last one and to stop it you have to see the next pattern

(?=(})[\\s\\S]*?((protected override|private|public) function))
First it excludes to include on the results the following results it would find, the ?=
This exclusion starts with } followed by anything, \s\S until it finds the next function declaration.

The groupings
We grouped the results into 2 big groups and since we need everything that came before }, we group the regular expression before it into a big group so that once we substitute we could just use $1 to get all of them back.

Its so hard to explain this stuff on writing and i suggest you to just test them and comment if there is something wrong or there are some area where the regular expression could be enhance. Thanks


Popular posts from this blog

LaMetric Python App

Creating a personal stock app for LaMetric is super simple, all you need is create an account at and have an url with your data. Depending on how you want the data to appear, the format should be in json and how it appears in the creation process.

I used appengine to host my data and used the metric data format

Here is the python code
import urllib2 import json # get stocks data using yahoo finance stocks = ['0002.HK', '0005.HK', '0011.HK', '0992.HK', '0066.HK'] url = "*" + ("%22%2C%22".join(stocks)) + "%22)%0A%09%09&" result = urllib2.urlopen(url) data = json.loads( # create frames based on the metric data format frames = [] for stock in data['query']['results']['quote']: …

Laravel 4.2 and App Engine

Was trying to make Laravel work with App Engine when i saw this post Laravel 4 on Google AppEngine for PHP, have tried to make it work but it seems there are some things that needs to be updated to make it work.

First off follow everything the blog until THE MCRYPT PHP EXTENSION then on that part we have to change "require": { "laravel/framework": "4.2.*", "neoxia/laravel-openssl-encryption-42": "dev-master" },
Then continue to follow the blog again. Then on THE LARAVEL 4 LOGGER, change $monolog->pushHandler(new Monolog\Handler\SyslogHandler('intranet', 'user', Monolog\Logger::DEBUG, false, LOG_PID));
Then before executing ./artisan optimize     open LaravelOpensslEncryptionServiceProvider.php, add to the top use Illuminate\Encryption\Encrypter;
Then lasty the part of UNIX_SOCKET, you could ignore it, it seems fixed for 4.2