characters either stand for classes of ordinary characters, or affect
how the regular expressions around them are interpreted. Regular
expression pattern strings may not contain null bytes, but can specify
-the null byte using the ``\number`` notation, e.g., ``'\x00'``.
+the null byte using a ``\number`` notation such as ``'\x00'``.
The special characters are:
\r \t \v \x
\\
-Octal escapes are included in a limited form: If the first digit is a 0, or if
+Octal escapes are included in a limited form. If the first digit is a 0, or if
there are three octal digits, it is considered an octal escape. Otherwise, it is
a group reference. As for string literals, octal escapes are always at most
three digits in length.
.. _matching-searching:
-Matching vs Searching
----------------------
+Matching vs. Searching
+----------------------
.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
['', '...', 'words', ', ', 'words', '...', '']
That way, separator components are always found at the same relative
- indices within the result list (e.g., if there's one capturing group
- in the separator, the 0th, the 2nd and so forth).
+ indices within the result list.
Note that *split* will never split a string on an empty pattern match.
For example:
--------------------------
Compiled regular expression objects support the following methods and
-attributes.
+attributes:
.. method:: regex.search(string[, pos[, endpos]])
The optional parameter *endpos* limits how far the string will be searched; it
will be as if the string is *endpos* characters long, so only the characters
from *pos* to ``endpos - 1`` will be searched for a match. If *endpos* is less
- than *pos*, no match will be found, otherwise, if *rx* is a compiled regular
+ than *pos*, no match will be found; otherwise, if *rx* is a compiled regular
expression object, ``rx.search(string, 0, 50)`` is equivalent to
``rx.search(string[:50], 0)``.
Match Objects
-------------
-Match objects always have a boolean value of :const:`True`, so that you can test
-whether e.g. :func:`match` resulted in a match with a simple if statement. They
+Match objects always have a boolean value of :const:`True`. This lets you
+use a simple if-statement to test whether a match was found. Match objects
support the following methods and attributes:
---------------------------
-Checking For a Pair
+Checking for a Pair
^^^^^^^^^^^^^^^^^^^
In this example, we'll use the following helper function to display match
If you create regular expressions that require the engine to perform a lot of
recursion, you may encounter a :exc:`RuntimeError` exception with the message
-``maximum recursion limit`` exceeded. For example, ::
+``maximum recursion limit exceeded``. For example, ::
>>> s = 'Begin ' + 1000*'a very long string ' + 'end'
>>> re.match('Begin (\w| )*? end', s).end()