Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Preface
What this book covers What you need for this book Who this book is for Conventions Reader feedback Customer support
Downloading the example code Errata Piracy Questions
Getting Started with Regular Expressions
Introduction to regular expressions
A bit of history of regular expressions Various flavors of regular expressions What type of problems need regular expressions to solve The basic rules of regular expressions Constructs of the standard regular expression and meta characters Some basic regular expression examples Eager matching
The effect of eager matching on regular expression alternation
Summary
Understanding the Core Constructs of Java Regular Expressions
Understanding the core constructs of regular expressions Quantifiers
Basic quantifiers
Examples using quantifiers
Greedy versus reluctant (lazy) matching using quantifiers Possessive quantifiers Boundary constructs
Examples using boundary constructs
Character classes
Examples of character classes Range inside a character class
Examples of character range
Escaping special regex metacharacters and escaping rules inside the character classes
Escaping inside a character class
Examples of escaping rules inside the character class
Literally matching a string that may contain special regex metacharacters Negated character classes
Examples of negated character classes
Predefined shorthand character classes
POSIX character classes
Unicode support in Java regular expressions
Commonly used Unicode character properties Negation of the preceding regex directives Unicode scripts support
Examples of matching Unicode text in regular expressions
Double escaping in a Java String when defining regular expressions Embedded regular expression mode modifiers The placement of embedded modes in a Java regular expression Disabling mode modifiers
Summary
Working with Groups, Capturing, and References
Capturing groups
Group numbering Named groups
Non-capturing groups
Advantages of non-capturing groups
Back references
Back reference of a named group Replacement reference of a named group Forward references Invalid (non-existing) backward or forward references
Summary
Regular Expression Programming Using Java String and Scanner APIs
Introduction to the Java String API for regular expressions' evaluation
Method - boolean matches(String regex)
Example of the matches method
Method - String replaceAll(String regex, String replacement)
Examples of the replaceAll method
Method - String replaceFirst(String regex, String replacement)
Examples of the replaceFirst method
Methods - String split methods
The limit parameter rules Examples of the split method
Example of the split method using the limit parameter
Using regular expressions in Java Scanner API Summary
Introduction to Java Regular Expression APIs - Pattern and Matcher Classes
The MatchResult interface The Pattern class
Examples using the Pattern class
Filtering a list of tokens using the asPredicate() method
The Matcher class
Examples using the Matcher class
Method Boolean lookingAt() The matches() method The find() and find(int start) methods
The appendReplacement(StringBuffer sb, String replacement) method The appendTail(StringBuffer sb) method Example of the appendReplacement and appendTail methods
Summary
Exploring Zero-Width Assertions, Lookarounds, and Atomic Groups
Zero-width assertions
Predefined zero-width assertions Regex defined zero-width assertions
\G boundary assertion Atomic groups Lookahead assertions
Positive lookahead Negative lookahead
Lookbehind assertions
Positive lookbehind Negative lookbehind Capturing text from overlapping matches Be careful with capturing groups inside a lookahead or lookbehind atomic group
Lookbehind limitations in Java regular expressions
Summary
Understanding the Union, Intersection, and Subtraction of Character Classes
The union of character classes The intersection of character classes The subtraction of character classes Why should you use composite character classes? Summary
Regular Expression Pitfalls, Optimization, and Performance Improvements
Common pitfalls and ways to avoid them while writing regular expressions
Do not forget to escape regex metacharacters outside a character class Avoid escaping every non-word character Avoid unnecessary capturing groups to reduce memory consumption However, don't forget to use the required group around alternation Use predefined character classes instead of longer versions Use the limiting quantifier instead of repeating a character or pattern multiple times Do not use an unescaped hyphen in the middle of a character class The mistake of calling matcher.goup() without a prior call to matcher.find(), matcher.matches(), or matcher.lookingAt() Do not use regular expressions to parse XML / HTML data
How to test and benchmark your regular expression performance Catastrophic or exponential backtracking
How to avoid catastrophic backtracking
Optimization and performance enhancement tips
Use a compiled form of regular expressions Use a negated character class instead of the greedy and slow .* or .+ Avoid unnecessary grouping Use lazy quantifiers strategically instead of greedy quantifiers that cause excessive backtracking Make use of possessive quantifiers to avoid backtracking Extract common repeating substrings out of alternation Use atomic group to avoid backtracking and fail fast
Summary
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion