Use String class methods such
as
indexOf()
,
substr()
, or
substring()
instead
of regular expressions for basic string finding and extraction.
Certain
operations that can be performed using a regular expression can
also be accomplished using methods of the String class. For example,
to find whether a string contains another string, you can either
use the
String.indexOf()
method or use a regular
expression. However, when a String class method is available, it
runs faster than the equivalent regular expression and does not require
the creation of another object.
Use a non-capturing group (“
(?:xxxx)
”)
instead of a group (“
(xxxx)
”) in a regular expression
to group elements without isolating the contents of the group in the
result.
Frequently in regular expressions of moderate complexity,
you group parts of the expression. For example, in the following
regular expression pattern the parentheses create a group around
the text “ab.” Consequently, the “+” quantifier applies to the group
rather than to a single character:
/(ab)+/
By
default, the contents of each group are “captured.” You can get
the contents of each group in your pattern as part of the result
of executing the regular expression. Capturing these group results
takes longer and requires more memory because objects are created
to contain the group results. As an alternative, you can use the
non-capturing group syntax by including a question mark and colon
after the opening parenthesis. This syntax specifies that the characters behave
as a group but are not captured for the result:
/(?:ab)+/
Using
the non-capturing group syntax is faster and uses less memory than
using the standard group syntax.
Consider using an alternative regular
expression pattern if a regular expression performs poorly.
Sometimes
more than one regular expression pattern can be used to test for
or identify the same text pattern. For various reasons, certain
patterns execute faster than other alternatives. If you determine
that a regular expression is causing your code to run slower than
necessary, consider alternative regular expression patterns that
achieve the same result. Test these alternative patterns to determine
which is the fastest.
|
|
|