[Python-checkins] r59383 - python/trunk/Doc/library/re.rst

georg.brandl python-checkins at python.org
Thu Dec 6 10:45:40 CET 2007


Author: georg.brandl
Date: Thu Dec  6 10:45:39 2007
New Revision: 59383

Modified:
   python/trunk/Doc/library/re.rst
Log:
Better re.split examples.


Modified: python/trunk/Doc/library/re.rst
==============================================================================
--- python/trunk/Doc/library/re.rst	(original)
+++ python/trunk/Doc/library/re.rst	Thu Dec  6 10:45:39 2007
@@ -1091,16 +1091,21 @@
 easily read and modified by Python as demonstrated in the following example that
 creates a phonebook.
 
-First, get the input using triple-quoted string syntax::
+First, here is the input.  Normally it may come from a file, here we are using
+triple-quoted string syntax::
 
-   >>> input = """Ross McFluff 834.345.1254 155 Elm Street
-   Ronald Heathmore 892.345.3428 436 Finley Avenue
-   Frank Burger 925.541.7625 662 South Dogwood Way
-   Heather Albrecht 548.326.4584 919 Park Place"""
+   >>> input = """Ross McFluff: 834.345.1254 155 Elm Street
 
-Then, convert the string into a list with each line having its own entry::
+   Ronald Heathmore: 892.345.3428 436 Finley Avenue
+   Frank Burger: 925.541.7625 662 South Dogwood Way
 
-   >>> entries = re.split("\n", input)
+
+   Heather Albrecht: 548.326.4584 919 Park Place"""
+
+The entries are separated by one or more newlines. Now we convert the string
+into a list with each nonempty line having its own entry::
+
+   >>> entries = re.split("\n+", input)
    >>> entries
    ['Ross McFluff 834.345.1254 155 Elm Street',
    'Ronald Heathmore 892.345.3428 436 Finley Avenue',
@@ -1111,16 +1116,17 @@
 number, and address.  We use the ``maxsplit`` paramater of :func:`split`
 because the address has spaces, our splitting pattern, in it::
 
-   >>> [re.split(" ", entry, 3) for entry in entries]
+   >>> [re.split(":? ", entry, 3) for entry in entries]
    [['Ross', 'McFluff', '834.345.1254', '155 Elm Street'],
    ['Ronald', 'Heathmore', '892.345.3428', '436 Finley Avenue'],
    ['Frank', 'Burger', '925.541.7625', '662 South Dogwood Way'],
    ['Heather', 'Albrecht', '548.326.4584', '919 Park Place']]
 
-With a ``maxsplit`` of ``4``, we could seperate the house number from the street
-name::
+The ``:?`` pattern matches the colon after the last name, so that it does not
+occur in the result list.  With a ``maxsplit`` of ``4``, we could seperate the
+house number from the street name::
 
-   >>> [re.split(" ", entry, 4) for entry in entries]
+   >>> [re.split(":? ", entry, 4) for entry in entries]
    [['Ross', 'McFluff', '834.345.1254', '155', 'Elm Street'],
    ['Ronald', 'Heathmore', '892.345.3428', '436', 'Finley Avenue'],
    ['Frank', 'Burger', '925.541.7625', '662', 'South Dogwood Way'],


More information about the Python-checkins mailing list