Have you reached the point in your studies of J2SE that you want to learn about some of the more complex regex tools and concepts? This article introduces a variety of concepts, and offers some advice for increasing the efficiency of your regular expressions. It is excerpted from chapter three of Java Regular Expressions Taming the Java.util.regex Engine, written by Mehran Habibi (Apress, 2004; ISBN: 1590591070).
This chapter provided explanations, details, and examples of some of the more challenging tools and concepts in the J2SE regex package. The chapter discussed groups, subgroups, noncapturing groups, greedy qualifiers, positive qualifiers, reluctant qualifiers, positive lookaheads, negative lookaheads, positive lookbehinds, and negative lookbehinds. Finally, the chapter finished with a few tips for optimizing your expressions. The next chapter will introduce some suggestions for working with regular expressions in an object-oriented language such as Java.
Q: How do I make a group noncapturing?
A: To make a group noncapturing, insert ?: inside the opening parenthesis of the group. For example, change (\w)to (?:\w).
Q:Given the expression \w(\d(\w)),whatís the capturing index of the rightmost subgroup, (\w)?
A: Groups are counted from left to right, starting with the opening parenthesis, and group(0) always refers to the whole regex pattern. Thus, the capturing index of subgroup (\w)is 2. Accordingly, thecapturing index of (\d(\w)) is group(2).
Q:How is group indexing affected when one of the groups is a noncapturing group?
A:The noncapturing group isnít counted in any way when group indexes are calculated.
DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware.