Author: Jan Goyvaerts & Steven Levithan
Audience: Developers who need practical help
Reviewer by: Ian Elliot
Regular expressions are useful and powerful. They really do deserve a book in their own right and this one shows you how to use them.
As long as you take the "cookbook" idea seriously, this is a useful book. It contains recipes for regular expressions for a wide range of situations - validating URLs, ISBNs, XML, numbers, emails and so on. This is the second edition and it contains one new chapter and many minor revisions. The new chapter deals with parsing logs, which is a very common use of regular expressions.
If you only want to validate a string then regular expressions are, well, fairly regular. If you want to do the equivalent of a search and replace, things aren't so easy as the replacement text option has be something that designers have bolted on to their implementations.
Each recipe starts off with the problem statement and some solutions, with an indication of what flavours of regular expression engine they work with. A discussion follows and for most programmers this is going to be the meat of the recipe. The discussions give you a good idea how the regular expressions work and how to modify them. Initially the problems start off fairly low level and general, such as how to match any character, and work their way up to much more complex matching such as a valid URL or ISBN. Occasionally an additional chunk of code is given to go beyond a regular expression - for example computing the checksum on an ISBN number.
Overall, the book is useful if you want to extend your knowledge of regular expressions or if you really do need help with a specific problem. It is also useful if you want to compare how different languages treat regular expressions.
What the book isn't so good at is teaching you the theory that underpins regular expressions and it doesn't give you much of an idea how to go about building your own from scratch or how to test that they work. If you already know the basics, however, it does provide a lot of examples of real practical regular expressions.
If what you really want is a cookbook then this is as good as it gets.