Book description
Take the guesswork out of using regular expressions. With more than 140 practical recipes, this cookbook provides everything you need to solve a wide range of real-world problems. Novices will learn basic skills and tools, and programmers and experienced users will find a wealth of detail. Each recipe provides samples you can use right away.
This revised edition covers the regular expression flavors used by C#, Java, JavaScript, Perl, PHP, Python, Ruby, and VB.NET. You’ll learn powerful new tricks, avoid flavor-specific gotchas, and save valuable time with this huge library of practical solutions.
- Learn regular expressions basics through a detailed tutorial
- Use code listings to implement regular expressions with your language of choice
- Understand how regular expressions differ from language to language
- Handle common user input with recipes for validation and formatting
- Find and manipulate words, special characters, and lines of text
- Detect integers, floating-point numbers, and other numerical formats
- Parse source code and process log files
- Use regular expressions in URLs, paths, and IP addresses
- Manipulate HTML, XML, and data exchange formats
- Discover little-known regular expression tricks and techniques
Publisher resources
Table of contents
- Regular Expressions Cookbook
- Preface
- 1. Introduction to Regular Expressions
-
2. Basic Regular Expression Skills
- 2.1. Match Literal Text
- 2.2. Match Nonprintable Characters
- 2.3. Match One of Many Characters
- 2.4. Match Any Character
- 2.5. Match Something at the Start and/or the End of a Line
- 2.6. Match Whole Words
- 2.7. Unicode Code Points, Categories, Blocks, and Scripts
- 2.8. Match One of Several Alternatives
- 2.9. Group and Capture Parts of the Match
- 2.10. Match Previously Matched Text Again
- 2.11. Capture and Name Parts of the Match
- 2.12. Repeat Part of the Regex a Certain Number of Times
- 2.13. Choose Minimal or Maximal Repetition
- 2.14. Eliminate Needless Backtracking
- 2.15. Prevent Runaway Repetition
- 2.16. Test for a Match Without Adding It to the Overall Match
- 2.17. Match One of Two Alternatives Based on a Condition
- 2.18. Add Comments to a Regular Expression
- 2.19. Insert Literal Text into the Replacement Text
- 2.20. Insert the Regex Match into the Replacement Text
- 2.21. Insert Part of the Regex Match into the Replacement Text
- 2.22. Insert Match Context into the Replacement Text
-
3. Programming with Regular Expressions
- Programming Languages and Regex Flavors
- 3.1. Literal Regular Expressions in Source Code
- 3.2. Import the Regular Expression Library
- 3.3. Create Regular Expression Objects
- 3.4. Set Regular Expression Options
- 3.5. Test If a Match Can Be Found Within a Subject String
- 3.6. Test Whether a Regex Matches the Subject String Entirely
- 3.7. Retrieve the Matched Text
- 3.8. Determine the Position and Length of the Match
- 3.9. Retrieve Part of the Matched Text
- 3.10. Retrieve a List of All Matches
- 3.11. Iterate over All Matches
- 3.12. Validate Matches in Procedural Code
- 3.13. Find a Match Within Another Match
- 3.14. Replace All Matches
- 3.15. Replace Matches Reusing Parts of the Match
- 3.16. Replace Matches with Replacements Generated in Code
- 3.17. Replace All Matches Within the Matches of Another Regex
- 3.18. Replace All Matches Between the Matches of Another Regex
- 3.19. Split a String
- 3.20. Split a String, Keeping the Regex Matches
- 3.21. Search Line by Line
- Construct a Parser
-
4. Validation and Formatting
- 4.1. Validate Email Addresses
- 4.2. Validate and Format North American Phone Numbers
- 4.3. Validate International Phone Numbers
- 4.4. Validate Traditional Date Formats
- 4.5. Validate Traditional Date Formats, Excluding Invalid Dates
- 4.6. Validate Traditional Time Formats
- 4.7. Validate ISO 8601 Dates and Times
- 4.8. Limit Input to Alphanumeric Characters
- 4.9. Limit the Length of Text
- 4.10. Limit the Number of Lines in Text
- 4.11. Validate Affirmative Responses
- 4.12. Validate Social Security Numbers
- 4.13. Validate ISBNs
- 4.14. Validate ZIP Codes
- 4.15. Validate Canadian Postal Codes
- 4.16. Validate U.K. Postcodes
- 4.17. Find Addresses with Post Office Boxes
- 4.18. Reformat Names From “FirstName LastName” to “LastName, FirstName”
-
4.19. Validate Password Complexity
- Problem
-
Solution
- Length between 8 and 32 characters
- ASCII visible and space characters only
- One or more uppercase letters
- One or more lowercase letters
- One or more numbers
- One or more special characters
- Disallow three or more sequential identical characters
- Example JavaScript solution, basic
- Example JavaScript solution, with x out of y validation
- Example JavaScript solution, with password security ranking
- Discussion
- Variations
- See Also
- 4.20. Validate Credit Card Numbers
- 4.21. European VAT Numbers
-
5. Words, Lines, and Special Characters
- 5.1. Find a Specific Word
- 5.2. Find Any of Multiple Words
- 5.3. Find Similar Words
- 5.4. Find All Except a Specific Word
- 5.5. Find Any Word Not Followed by a Specific Word
- 5.6. Find Any Word Not Preceded by a Specific Word
- 5.7. Find Words Near Each Other
- 5.8. Find Repeated Words
- 5.9. Remove Duplicate Lines
- 5.10. Match Complete Lines That Contain a Word
- 5.11. Match Complete Lines That Do Not Contain a Word
- 5.12. Trim Leading and Trailing Whitespace
- 5.13. Replace Repeated Whitespace with a Single Space
- 5.14. Escape Regular Expression Metacharacters
-
6. Numbers
- 6.1. Integer Numbers
- 6.2. Hexadecimal Numbers
- 6.3. Binary Numbers
- 6.4. Octal Numbers
- 6.5. Decimal Numbers
- 6.6. Strip Leading Zeros
- 6.7. Numbers Within a Certain Range
- 6.8. Hexadecimal Numbers Within a Certain Range
- 6.9. Integer Numbers with Separators
- 6.10. Floating-Point Numbers
- 6.11. Numbers with Thousand Separators
- 6.12. Add Thousand Separators to Numbers
- 6.13. Roman Numerals
- 7. Source Code and Log Files
-
8. URLs, Paths, and Internet Addresses
- 8.1. Validating URLs
- 8.2. Finding URLs Within Full Text
- 8.3. Finding Quoted URLs in Full Text
- 8.4. Finding URLs with Parentheses in Full Text
- 8.5. Turn URLs into Links
- 8.6. Validating URNs
- 8.7. Validating Generic URLs
- 8.8. Extracting the Scheme from a URL
- 8.9. Extracting the User from a URL
- 8.10. Extracting the Host from a URL
- 8.11. Extracting the Port from a URL
- 8.12. Extracting the Path from a URL
- 8.13. Extracting the Query from a URL
- 8.14. Extracting the Fragment from a URL
- 8.15. Validating Domain Names
- 8.16. Matching IPv4 Addresses
- 8.17. Matching IPv6 Addresses
- 8.18. Validate Windows Paths
- 8.19. Split Windows Paths into Their Parts
- 8.20. Extract the Drive Letter from a Windows Path
- 8.21. Extract the Server and Share from a UNC Path
- 8.22. Extract the Folder from a Windows Path
- 8.23. Extract the Filename from a Windows Path
- 8.24. Extract the File Extension from a Windows Path
- 8.25. Strip Invalid Characters from Filenames
-
9. Markup and Data Formats
- Processing Markup and Data Formats with Regular Expressions
- 9.1. Find XML-Style Tags
- 9.2. Replace <b> Tags with <strong>
- 9.3. Remove All XML-Style Tags Except <em> and <strong>
- 9.4. Match XML Names
- 9.5. Convert Plain Text to HTML by Adding <p> and <br> Tags
- 9.6. Decode XML Entities
- 9.7. Find a Specific Attribute in XML-Style Tags
- 9.8. Add a cellspacing Attribute to <table> Tags That Do Not Already Include It
- 9.9. Remove XML-Style Comments
- 9.10. Find Words Within XML-Style Comments
- 9.11. Change the Delimiter Used in CSV Files
- 9.12. Extract CSV Fields from a Specific Column
- 9.13. Match INI Section Headers
- 9.14. Match INI Section Blocks
- 9.15. Match INI Name-Value Pairs
- Index
- About the Authors
- Colophon
- Copyright
Product information
- Title: Regular Expressions Cookbook, 2nd Edition
- Author(s):
- Release date: August 2012
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781449319434
You might also like
book
Regular Expressions Cookbook
This cookbook provides more than 100 recipes to help you crunch data and manipulate text with …
book
Mastering Regular Expressions, 3rd Edition
Regular expressions are an extremely powerful tool for manipulating text and data. They are now standard …
book
Learning SQL, 3rd Edition
As data floods into your company, you need to put it to work right away—and SQL …
book
Head First Java, 3rd Edition
What will you learn from this book? Head First Java is a complete learning experience in …