diff --git a/Doc/library/re.rst b/Doc/library/re.rst index db92c480855..64d84e10d16 100644 --- a/Doc/library/re.rst +++ b/Doc/library/re.rst @@ -67,8 +67,8 @@ string *pq* will match AB. This holds unless *A* or *B* contain low precedence operations; boundary conditions between *A* and *B*; or have numbered group references. Thus, complex expressions can easily be constructed from simpler primitive expressions like the ones described here. For details of the theory -and implementation of regular expressions, consult the Friedl book referenced -above, or almost any textbook about compiler construction. +and implementation of regular expressions, consult the Friedl book [Frie09]_, +or almost any textbook about compiler construction. A brief explanation of the format of regular expressions follows. For further information and a gentler presentation, consult the :ref:`regex-howto`. @@ -471,14 +471,6 @@ three digits in length. Unknown escapes consisting of ``'\'`` and an ASCII letter now are errors. -.. seealso:: - - Mastering Regular Expressions - Book on regular expressions by Jeffrey Friedl, published by O'Reilly. The - second edition of the book no longer covers Python at all, but the first - edition covered writing good regular expression patterns in great detail. - - .. _contents-of-module-re: @@ -1561,3 +1553,9 @@ The tokenizer produces the following output:: Token(typ='END', value=';', line=4, column=27) Token(typ='ENDIF', value='ENDIF', line=5, column=4) Token(typ='END', value=';', line=5, column=9) + + +.. [Frie09] Friedl, Jeffrey. Mastering Regular Expressions. 3rd ed., O'Reilly + Media, 2009. The third edition of the book no longer covers Python at all, + but the first edition covered writing good regular expression patterns in + great detail.