@@ -67,8 +67,8 @@ string *pq* will match AB. This holds unless *A* or *B* contain low precedence
67
67
operations; boundary conditions between *A * and *B *; or have numbered group
68
68
references. Thus, complex expressions can easily be constructed from simpler
69
69
primitive expressions like the ones described here. For details of the theory
70
- and implementation of regular expressions, consult the Friedl book referenced
71
- above, or almost any textbook about compiler construction.
70
+ and implementation of regular expressions, consult the Friedl book [ Frie09 ]_,
71
+ or almost any textbook about compiler construction.
72
72
73
73
A brief explanation of the format of regular expressions follows. For further
74
74
information and a gentler presentation, consult the :ref: `regex-howto `.
@@ -471,14 +471,6 @@ three digits in length.
471
471
Unknown escapes consisting of ``'\' `` and an ASCII letter now are errors.
472
472
473
473
474
- .. seealso ::
475
-
476
- Mastering Regular Expressions
477
- Book on regular expressions by Jeffrey Friedl, published by O'Reilly. The
478
- second edition of the book no longer covers Python at all, but the first
479
- edition covered writing good regular expression patterns in great detail.
480
-
481
-
482
474
483
475
.. _contents-of-module-re :
484
476
@@ -1561,3 +1553,9 @@ The tokenizer produces the following output::
1561
1553
Token(typ='END', value=';', line=4, column=27)
1562
1554
Token(typ='ENDIF', value='ENDIF', line=5, column=4)
1563
1555
Token(typ='END', value=';', line=5, column=9)
1556
+
1557
+
1558
+ .. [Frie09 ] Friedl, Jeffrey. Mastering Regular Expressions. 3rd ed., O'Reilly
1559
+ Media, 2009. The third edition of the book no longer covers Python at all,
1560
+ but the first edition covered writing good regular expression patterns in
1561
+ great detail.
0 commit comments