Preface
Over the past decade, regular expressions have experienced a remarkable rise in popularity. Today, all the popular programming languages include a powerful regular expression library, or even have regular expression support built right into the language. Many developers have taken advantage of these regular expression features to provide the users of their applications the ability to search or filter through their data using a regular expression. Regular expressions are everywhere.
Many books have been published to ride the wave of regular expression adoption. Most do a good job of explaining the regular expression syntax along with some examples and a reference. But there arent any books that present solutions based on regular expressions to a wide range of real-world practical problems dealing with text on a computer and in a range of Internet applications. We, Steve and Jan, decided to fill that need with this book.
We particularly wanted to show how you can use regular expressions in situations where people with limited regular expression experience would say it cant be done, or where software purists would say a regular expression isnt the right tool for the job. Because regular expressions are everywhere these days, they are often a readily available tool that can be used by end users, without the need to involve a team of programmers. Even programmers can often save time by using a few regular expressions for information retrieval and alteration tasks that would take hours or days to code in procedural code, or that would otherwise require a third-party library that needs prior review and management approval.
Caught in the Snarls of Different Versions
As with anything that becomes popular in the IT industry, regular expressions come in many different implementations, with varying degrees of compatibility. This has resulted in many different regular expression flavors that dont always act the same way, or work at all, on a particular regular expression.
Many books do mention that there are different flavors and point out some of the differences. But they often leave out certain flavors here and thereparticularly when a flavor lacks certain featuresinstead of providing alternative solutions or workarounds . This is frustrating when you have to work with different regular expression flavors in different applications or programming languages.
Casual statements in the literature, such as everybody uses Perl-style regular expressions now, unfortunately trivialize a wide range of incompatibilities. Even Perl-style packages have important differences, and meanwhile Perl continues to evolve. Oversimplified impressions can lead programmers to spend half an hour or so fruitlessly running the debugger instead of checking the details of their regular expression implementation. Even when they discover that some feature they were depending on is not present, they dont always know how to work around it.
This book is the first book on the market that discusses the most popular and feature-rich regular expression flavors side by side, and does so consistently throughout the book.
Intended Audience
You should read this book if you regularly work with text on a computer, whether thats searching through a pile of documents, manipulating text in a text editor, or developing software that needs to search through or manipulate text. Regular expressions are an excellent tool for the job. Regular Expressions Cookbook teaches you everything you need to know about regular expressions. You dont need any prior experience whatsoever, because we explain even the most basic aspects of regular expressions.
If you do have experience with regular expressions, youll find a wealth of detail that other books and online articles often gloss over. If youve ever been stumped by a regex that works in one application but not another, youll find this books detailed and equal coverage of seven of the worlds most popular regular expression flavors very valuable. We organized the whole book as a cookbook, so you can jump right to the topics you want to read up on. If you read the book cover to cover, youll become a world-class chef of regular expressions.
This book teaches you everything you need to know about regular expressions and then some, regardless of whether you are a programmer. If you want to use regular expressions with a text editor, search tool, or any application with an input box labeled regex, you can read this book with no programming experience at all. Most of the recipes in this book have solutions purely based on one or more regular expressions.
If you are a programmer, provides all the information you need to implement regular expressions in your source code. This chapter assumes youre familiar with the basic language features of the programming language of your choice, but it does not assume you have ever used a regular expression in your source code.
Technology Covered
.NET, Java, JavaScript, PCRE, Perl, Python, and Ruby arent just back-cover buzzwords. These are the seven regular expression flavors covered by this book. We cover all seven flavors equally. Weve particularly taken care to point out all the inconsistencies that we could find between those regular expression flavors.
The programming chapter () has code listings in C#, Java, JavaScript, PHP, Perl, Python, Ruby, and VB.NET. Again, every recipe has solutions and explanations for all eight languages. While this makes the chapter somewhat repetitive, you can easily skip discussions on languages you arent interested in without missing anything you should know about your language of choice.
Organization of This Book
The first three chapters of this book cover useful tools and basic information that give you a basis for using regular expressions; each of the subsequent chapters presents a variety of regular expressions while investigating one area of text processing in depth.
, explains the role of regular expressions and introduces a number of tools that will make it easier to learn, create, and debug them.
, covers each element and feature of regular expressions, along with important guidelines for effective use.