Generating regexes and Gmail filters

Online regex generator a useful tool

Before I launch into my main thrust (a word that must be pronounced with a rolling "r") I have to direct you to a work of near genius, txt2re, an online regular expression code generator.

If you aren't au fait with regular expressions (also called regexes or regexps), they are formal descriptions of searches to be conducted on sequences of characters (or "strings") by a regular expression processor, that is, a program designed to process "regexes" (see the Wikipedia entry on regular expressions).

Regex is useful for jobs such as mining server logs and searching data files and txt2re makes generating code in Perl, PHP, Python, Java, Javascript, ColdFusion, C, C++, Ruby, VB, VBScript,,, or that perform these searches incredibly easy.

To use txt2re you give the service an example string and it shows you the substrings it recognizes and lets you select which ones you want to include in the output.

I did, however, say "near genius" as txt2re seems to have a bug that means the service doesn't always identify all of the "findable" substrings correctly. I was using txt2re to generate JavaScript code based on the following example entry in an Apache server access log: - bob [16/Mar/2009:13:14:15 -0800] "GET /gibbs.gif HTTP/1.0" 200 5648

Txt2re failed to offer to treat the last digits in the string that show the data length as an integer -- it only offered them as four individual digits (see here), which would be useless if the data length was five digits long.

The solution was, oddly enough, to change the IP address in the example string to and voila! I got the code I needed (see here). Despite this bug, the concept is way cool and a little creative tweaking of either your example or the generated code will get you the code for exactly the regex search you need. (Here is a telephone number parser in JavaScript I created using txt2re).

Join the newsletter!

Error: Please check your email address.

Tags Gmailregular expressions

More about ApacheCGIHewlett-Packard AustraliaHPWikipedia

Show Comments