Preface
1. What Is a Regular Expression?
Getting Started with Regexpal
Matching a North American Phone Number
Matching Digits with a Character Class
Using a Character Shorthand
Matching Any Character
Capturing Groups and Back References
Using Quantifiers
Quoting Literals
A Sample of Applications
What You Learned in Chapter 1
Technical Notes
2. Simple Pattern Matching
Matching String Literals
Matching Digits
Matching Non-Digits
Matching Word and Non-Word Characters
Matching Whitespace
Matching Any Character, Once Again
Marking Up the Text
Using sed to Mark Up Text
Using Perl to Mark Up Text
What You Learned in Chapter 2
Technical Notes
3.Boundaries
The Beginning and End of a Line
Word and Non-word Boundaries
Other Anchors
Quoting a Group of Characters as Literals
Adding Tags
Adding Tags with sed
Adding Tags with Perl
What You Learned in Chapter 3
Technical Notes
4.Alternation, Groups, and Backreferences
Alternation
Subpatterns
Capturing Groups and Backreferences
Named Groups
Non-Capturing Groups
Atomic Groups
What You Learned in Chapter 4
Technical Notes
5.Character Classes
Negated Character Classes
Union and Difference
POSIX Character Classes
What You Learned in Chapter 5
Technical Notes
6.Matching Unicode and Other Characters
Matching a Unicode Character
Using vim
Matching Characters with Octal Numbers
Matching Unicode Character Properties
Matching Control Characters
What You Learned in Chapter 6
Technical Notes
7. Quantifiers
Greedy, Lazy, and Possessive
Matching with *, +, and ?
Matching a Specific Number of Times
Lazy Quantifiers
Possessive Quantifiers
What You Learned in Chapter 7
Technical Notes
8. Lookarounds
Positive Lookaheads
Negative Lookaheads
Positive Lookbehinds
Negative Lookbehinds
What You Learned in Chapter 8
Technical Notes
9. Marking Up a Document with HTML
Matching Tags
Transforming Plain Text with sed
Substitution with sed
Handling Roman Numerals with sed
Handling a Specific Paragraph with sed
Handling the Lines of the Poem with sed
Appending Tags
Using a Command File with sed
Transforming Plain Text with Perl
Handling Roman Numerals with Perl
Handling a Specific Paragraph with Perl
Handling the Lines of the Poem with Perl
Using a File of Commands with Perl
What You Learned in Chapter 9
Technical Notes
10.The End of the Beginning
Learning More
Notable Tools, Implementations, and Libraries
Perl
PCRE
Ruby (Oniguruma)
Python
RE2
Matching a North American Phone Number
Matching an Email Address
What You Learned in Chapter 10
Appendix: Regular Expression Reference
Regular Expression Glossary
Index