Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Java 9 Regular Expressions

You're reading from   Java 9 Regular Expressions A hands-on guide to implement zero-length assertions, back-references, quantifiers, and many more

Arrow left icon
Product type Paperback
Published in Jul 2017
Publisher Packt
ISBN-13 9781787288706
Length 158 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Anubhava Srivastava Anubhava Srivastava
Author Profile Icon Anubhava Srivastava
Anubhava Srivastava
Arrow right icon
View More author details
Toc

Table of Contents (9) Chapters Close

Preface 1. Getting Started with Regular Expressions 2. Understanding the Core Constructs of Java Regular Expressions FREE CHAPTER 3. Working with Groups, Capturing, and References 4. Regular Expression Programming Using Java String and Scanner APIs 5. Introduction to Java Regular Expression APIs - Pattern and Matcher Classes 6. Exploring Zero-Width Assertions, Lookarounds, and Atomic Groups 7. Understanding the Union, Intersection, and Subtraction of Character Classes 8. Regular Expression Pitfalls, Optimization, and Performance Improvements

Catastrophic or exponential backtracking


Regular expression engines can be broadly categorized into two types:

  1. The Non-deterministic Finite Automation (NFA) engine
  2. The Deterministic Finite Automation (DFA) engine

The DFA engines do not evaluate each character more than once to find a match. On the other hand, the NFA engines support backtracking, which means that each character in the input can be evaluated multiple times by the regex engine. The Java regular expression engine is an NFA engine.

Regex engines backtrack or give back one position at a time to make various attempts to match a given pattern when using the greedy quantifier or trying alternations. Similarly, when using lazy quantifiers, the regex engine moves forward one position at a time to attempt matching.

Regex engines usually take less time to find a positive match in the given input as compared to returning a failure for a non-match. The NFA regex engines need to evaluate all the possible permutations before returning a failure...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at R$50/month. Cancel anytime