Mercurial > cpython-lru_cache-weakref
annotate Lib/pre.py @ 27998:e27f58a50737 legacy-trunk
SF bug #690377: Dud footnote reference in distutils docs
| author | Raymond Hettinger <python@rcn.com> |
|---|---|
| date | Fri, 21 Feb 2003 02:47:09 +0000 |
| parents | 5b508ce049f5 |
| children | 14f65d661084 |
| rev | line source |
|---|---|
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 # module 're' -- A collection of regular expression operations |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
2 |
|
17021
f0efdcd24512
Make docstrings raw, since they contain literal backslashes.
Ka-Ping Yee <ping@zesty.ca>
parents:
16613
diff
changeset
|
3 r"""Support for regular expressions (RE). |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 This module provides regular expression matching operations similar to |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 those found in Perl. It's 8-bit clean: the strings being processed may |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 contain both null bytes and characters whose high bit is set. Regular |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
8 expression pattern strings may not contain null bytes, but can specify |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 the null byte using the \\number notation. Characters with the high |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 bit set may be included. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
11 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
12 Regular expressions can contain both special and ordinary |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
13 characters. Most ordinary characters, like "A", "a", or "0", are the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 simplest regular expressions; they simply match themselves. You can |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 concatenate ordinary characters, so last matches the string 'last'. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 The special characters are: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
18 "." Matches any character except a newline. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 "^" Matches the start of the string. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 "$" Matches the end of the string. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
21 "*" Matches 0 or more (greedy) repetitions of the preceding RE. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
22 Greedy means that it will match as many repetitions as possible. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 "+" Matches 1 or more (greedy) repetitions of the preceding RE. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
24 "?" Matches 0 or 1 (greedy) of the preceding RE. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 *?,+?,?? Non-greedy versions of the previous three special characters. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 {m,n} Matches from m to n repetitions of the preceding RE. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
27 {m,n}? Non-greedy version of the above. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
28 "\\" Either escapes special characters or signals a special sequence. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
29 [] Indicates a set of characters. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
30 A "^" as the first character indicates a complementing set. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
31 "|" A|B, creates an RE that will match either A or B. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
32 (...) Matches the RE inside the parentheses. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
33 The contents can be retrieved or matched later in the string. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
34 (?iLmsx) Set the I, L, M, S, or X flag for the RE. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
35 (?:...) Non-grouping version of regular parentheses. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
36 (?P<name>...) The substring matched by the group is accessible by name. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
37 (?P=name) Matches the text matched earlier by the group named name. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
38 (?#...) A comment; ignored. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
39 (?=...) Matches if ... matches next, but doesn't consume the string. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
40 (?!...) Matches if ... doesn't match next. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
41 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
42 The special sequences consist of "\\" and a character from the list |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
43 below. If the ordinary character is not on the list, then the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 resulting RE will match the second character. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
45 \\number Matches the contents of the group of the same number. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
46 \\A Matches only at the start of the string. |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
47 \\Z Matches only at the end of the string. |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
48 \\b Matches the empty string, but only at the start or end of a word. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
49 \\B Matches the empty string, but not at the start or end of a word. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
50 \\d Matches any decimal digit; equivalent to the set [0-9]. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
51 \\D Matches any non-digit character; equivalent to the set [^0-9]. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
52 \\s Matches any whitespace character; equivalent to [ \\t\\n\\r\\f\\v]. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
53 \\S Matches any non-whitespace character; equiv. to [^ \\t\\n\\r\\f\\v]. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
54 \\w Matches any alphanumeric character; equivalent to [a-zA-Z0-9_]. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
55 With LOCALE, it will match the set [0-9_] plus characters defined |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
56 as letters for the current locale. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
57 \\W Matches the complement of \\w. |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
58 \\\\ Matches a literal backslash. |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
59 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
60 This module exports the following functions: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
61 match Match a regular expression pattern to the beginning of a string. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
62 search Search a string for the presence of a pattern. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
63 sub Substitute occurrences of a pattern found in a string. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
64 subn Same as sub, but also return the number of substitutions made. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
65 split Split a string by the occurrences of a pattern. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
66 findall Find all occurrences of a pattern in a string. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
67 compile Compile a pattern into a RegexObject. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
68 escape Backslash all non-alphanumerics in a string. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
69 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
70 This module exports the following classes: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
71 RegexObject Holds a compiled regular expression pattern. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
72 MatchObject Contains information about pattern matches. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
73 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
74 Some of the functions in this module takes flags as optional parameters: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
75 I IGNORECASE Perform case-insensitive matching. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
76 L LOCALE Make \w, \W, \b, \B, dependent on the current locale. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
77 M MULTILINE "^" matches the beginning of lines as well as the string. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
78 "$" matches the end of lines as well as the string. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
79 S DOTALL "." matches any character at all, including the newline. |
|
13620
5b727ab37092
Spelling fixes supplied by Rob W. W. Hooft. All these are fixes in either
Thomas Wouters <thomas@python.org>
parents:
13229
diff
changeset
|
80 X VERBOSE Ignore whitespace and comments for nicer looking RE's. |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
81 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
82 This module also defines an exception 'error'. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
83 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
84 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
85 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
86 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
87 import sys |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
88 from pcre import * |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
89 |
|
22944
50c9c241463d
Add deprecation warning to 'pre' module
Andrew M. Kuchling <amk@amk.ca>
parents:
17799
diff
changeset
|
90 # XXX This module is deprecated as of Python 2.3, and should be removed |
|
50c9c241463d
Add deprecation warning to 'pre' module
Andrew M. Kuchling <amk@amk.ca>
parents:
17799
diff
changeset
|
91 # in the version that follows 2.3. |
|
50c9c241463d
Add deprecation warning to 'pre' module
Andrew M. Kuchling <amk@amk.ca>
parents:
17799
diff
changeset
|
92 import warnings as _warnings |
|
50c9c241463d
Add deprecation warning to 'pre' module
Andrew M. Kuchling <amk@amk.ca>
parents:
17799
diff
changeset
|
93 _warnings.warn("Please use the 're' module, not the 'pre' module", |
|
50c9c241463d
Add deprecation warning to 'pre' module
Andrew M. Kuchling <amk@amk.ca>
parents:
17799
diff
changeset
|
94 DeprecationWarning) |
|
23075
b7e87732f6ab
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
22944
diff
changeset
|
95 |
| 16613 | 96 __all__ = ["match","search","sub","subn","split","findall","escape","compile", |
| 97 "I","L","M","S","X","IGNORECASE","LOCALE","MULTILINE","DOTALL", | |
| 98 "VERBOSE","error"] | |
|
16562
623456576d6a
__all__ for several more modules
Skip Montanaro <skip@pobox.com>
parents:
16548
diff
changeset
|
99 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
100 # |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
101 # First, the public part of the interface: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
102 # |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
103 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
104 # pcre.error and re.error should be the same, since exceptions can be |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
105 # raised from either module. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
106 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
107 # compilation flags |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
108 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
109 I = IGNORECASE |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
110 L = LOCALE |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
111 M = MULTILINE |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
112 S = DOTALL |
|
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
113 X = VERBOSE |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
114 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
115 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
116 # |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
117 # |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
118 # |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
119 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
120 _cache = {} |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
121 _MAXCACHE = 20 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
122 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
123 def _cachecompile(pattern, flags=0): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
124 key = (pattern, flags) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
125 try: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
126 return _cache[key] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
127 except KeyError: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
128 pass |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
129 value = compile(pattern, flags) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
130 if len(_cache) >= _MAXCACHE: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
131 _cache.clear() |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
132 _cache[key] = value |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
133 return value |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
134 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
135 def match(pattern, string, flags=0): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
136 """match (pattern, string[, flags]) -> MatchObject or None |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
137 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
138 If zero or more characters at the beginning of string match the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
139 regular expression pattern, return a corresponding MatchObject |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
140 instance. Return None if the string does not match the pattern; |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
141 note that this is different from a zero-length match. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
142 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
143 Note: If you want to locate a match anywhere in string, use |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
144 search() instead. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
145 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
146 """ |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
147 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
148 return _cachecompile(pattern, flags).match(string) |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
149 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
150 def search(pattern, string, flags=0): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
151 """search (pattern, string[, flags]) -> MatchObject or None |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
152 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
153 Scan through string looking for a location where the regular |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
154 expression pattern produces a match, and return a corresponding |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
155 MatchObject instance. Return None if no position in the string |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
156 matches the pattern; note that this is different from finding a |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
157 zero-length match at some point in the string. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
158 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
159 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
160 return _cachecompile(pattern, flags).search(string) |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
161 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
162 def sub(pattern, repl, string, count=0): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
163 """sub(pattern, repl, string[, count=0]) -> string |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
164 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
165 Return the string obtained by replacing the leftmost |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
166 non-overlapping occurrences of pattern in string by the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
167 replacement repl. If the pattern isn't found, string is returned |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
168 unchanged. repl can be a string or a function; if a function, it |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
169 is called for every non-overlapping occurrence of pattern. The |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
170 function takes a single match object argument, and returns the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
171 replacement string. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
172 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
173 The pattern may be a string or a regex object; if you need to |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
174 specify regular expression flags, you must use a regex object, or |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
175 use embedded modifiers in a pattern; e.g. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
176 sub("(?i)b+", "x", "bbbb BBBB") returns 'x x'. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
177 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
178 The optional argument count is the maximum number of pattern |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
179 occurrences to be replaced; count must be a non-negative integer, |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
180 and the default value of 0 means to replace all occurrences. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
181 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
182 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
183 if type(pattern) == type(''): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
184 pattern = _cachecompile(pattern) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
185 return pattern.sub(repl, string, count) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
186 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
187 def subn(pattern, repl, string, count=0): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
188 """subn(pattern, repl, string[, count=0]) -> (string, num substitutions) |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
189 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
190 Perform the same operation as sub(), but return a tuple |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
191 (new_string, number_of_subs_made). |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
192 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
193 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
194 if type(pattern) == type(''): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
195 pattern = _cachecompile(pattern) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
196 return pattern.subn(repl, string, count) |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
197 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
198 def split(pattern, string, maxsplit=0): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
199 """split(pattern, string[, maxsplit=0]) -> list of strings |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
200 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
201 Split string by the occurrences of pattern. If capturing |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
202 parentheses are used in pattern, then the text of all groups in |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
203 the pattern are also returned as part of the resulting list. If |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
204 maxsplit is nonzero, at most maxsplit splits occur, and the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
205 remainder of the string is returned as the final element of the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
206 list. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
207 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
208 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
209 if type(pattern) == type(''): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
210 pattern = _cachecompile(pattern) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
211 return pattern.split(string, maxsplit) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
212 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
213 def findall(pattern, string): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
214 """findall(pattern, string) -> list |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
215 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
216 Return a list of all non-overlapping matches of pattern in |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
217 string. If one or more groups are present in the pattern, return a |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
218 list of groups; this will be a list of tuples if the pattern has |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
219 more than one group. Empty matches are included in the result. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
220 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
221 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
222 if type(pattern) == type(''): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
223 pattern = _cachecompile(pattern) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
224 return pattern.findall(string) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
225 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
226 def escape(pattern): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
227 """escape(string) -> string |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
228 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
229 Return string with all non-alphanumerics backslashed; this is |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
230 useful if you want to match an arbitrary literal string that may |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
231 have regular expression metacharacters in it. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
232 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
233 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
234 result = list(pattern) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
235 for i in range(len(pattern)): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
236 char = pattern[i] |
| 16548 | 237 if not char.isalnum(): |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
238 if char=='\000': result[i] = '\\000' |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
239 else: result[i] = '\\'+char |
|
16499
58de2829cfdd
String method conversion.
Eric S. Raymond <esr@thyrsus.com>
parents:
15870
diff
changeset
|
240 return ''.join(result) |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
241 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
242 def compile(pattern, flags=0): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
243 """compile(pattern[, flags]) -> RegexObject |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
244 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
245 Compile a regular expression pattern into a regular expression |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
246 object, which can be used for matching using its match() and |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
247 search() methods. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
248 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
249 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
250 groupindex={} |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
251 code=pcre_compile(pattern, flags, groupindex) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
252 return RegexObject(pattern, flags, code, groupindex) |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
253 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
254 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
255 # |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
256 # Class definitions |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
257 # |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
258 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
259 class RegexObject: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
260 """Holds a compiled regular expression pattern. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
261 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
262 Methods: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
263 match Match the pattern to the beginning of a string. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
264 search Search a string for the presence of the pattern. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
265 sub Substitute occurrences of the pattern found in a string. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
266 subn Same as sub, but also return the number of substitutions made. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
267 split Split a string by the occurrences of the pattern. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
268 findall Find all occurrences of the pattern in a string. |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
269 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
270 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
271 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
272 def __init__(self, pattern, flags, code, groupindex): |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
273 self.code = code |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
274 self.flags = flags |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
275 self.pattern = pattern |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
276 self.groupindex = groupindex |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
277 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
278 def search(self, string, pos=0, endpos=None): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
279 """search(string[, pos][, endpos]) -> MatchObject or None |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
280 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
281 Scan through string looking for a location where this regular |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
282 expression produces a match, and return a corresponding |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
283 MatchObject instance. Return None if no position in the string |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
284 matches the pattern; note that this is different from finding |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
285 a zero-length match at some point in the string. The optional |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
286 pos and endpos parameters have the same meaning as for the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
287 match() method. |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
288 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
289 """ |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
290 if endpos is None or endpos>len(string): |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
291 endpos=len(string) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
292 if endpos<pos: endpos=pos |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
293 regs = self.code.match(string, pos, endpos, 0) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
294 if regs is None: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
295 return None |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
296 self._num_regs=len(regs) |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
297 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
298 return MatchObject(self, |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
299 string, |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
300 pos, endpos, |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
301 regs) |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
302 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
303 def match(self, string, pos=0, endpos=None): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
304 """match(string[, pos][, endpos]) -> MatchObject or None |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
305 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
306 If zero or more characters at the beginning of string match |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
307 this regular expression, return a corresponding MatchObject |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
308 instance. Return None if the string does not match the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
309 pattern; note that this is different from a zero-length match. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
310 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
311 Note: If you want to locate a match anywhere in string, use |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
312 search() instead. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
313 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
314 The optional second parameter pos gives an index in the string |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
315 where the search is to start; it defaults to 0. This is not |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
316 completely equivalent to slicing the string; the '' pattern |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
317 character matches at the real beginning of the string and at |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
318 positions just after a newline, but not necessarily at the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
319 index where the search is to start. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
320 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
321 The optional parameter endpos limits how far the string will |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
322 be searched; it will be as if the string is endpos characters |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
323 long, so only the characters from pos to endpos will be |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
324 searched for a match. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
325 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
326 """ |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
327 if endpos is None or endpos>len(string): |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
328 endpos=len(string) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
329 if endpos<pos: endpos=pos |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
330 regs = self.code.match(string, pos, endpos, ANCHORED) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
331 if regs is None: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
332 return None |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
333 self._num_regs=len(regs) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
334 return MatchObject(self, |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
335 string, |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
336 pos, endpos, |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
337 regs) |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
338 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
339 def sub(self, repl, string, count=0): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
340 """sub(repl, string[, count=0]) -> string |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
341 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
342 Return the string obtained by replacing the leftmost |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
343 non-overlapping occurrences of the compiled pattern in string |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
344 by the replacement repl. If the pattern isn't found, string is |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
345 returned unchanged. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
346 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
347 Identical to the sub() function, using the compiled pattern. |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
348 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
349 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
350 return self.subn(repl, string, count)[0] |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
351 |
|
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
352 def subn(self, repl, source, count=0): |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
353 """subn(repl, string[, count=0]) -> tuple |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
354 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
355 Perform the same operation as sub(), but return a tuple |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
356 (new_string, number_of_subs_made). |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
357 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
358 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
359 if count < 0: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
360 raise error, "negative substitution count" |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
361 if count == 0: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
362 count = sys.maxint |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
363 n = 0 # Number of matches |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
364 pos = 0 # Where to start searching |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
365 lastmatch = -1 # End of last match |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
366 results = [] # Substrings making up the result |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
367 end = len(source) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
368 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
369 if type(repl) is type(''): |
|
24029
5b508ce049f5
Fix bug #570057: Broken pre.subn() (and pre.sub())
Fredrik Lundh <fredrik@pythonware.com>
parents:
23075
diff
changeset
|
370 # See if repl contains group references (if it does, |
|
5b508ce049f5
Fix bug #570057: Broken pre.subn() (and pre.sub())
Fredrik Lundh <fredrik@pythonware.com>
parents:
23075
diff
changeset
|
371 # pcre_expand will attempt to call _Dummy.group, which |
|
5b508ce049f5
Fix bug #570057: Broken pre.subn() (and pre.sub())
Fredrik Lundh <fredrik@pythonware.com>
parents:
23075
diff
changeset
|
372 # results in a TypeError) |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
373 try: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
374 repl = pcre_expand(_Dummy, repl) |
|
24029
5b508ce049f5
Fix bug #570057: Broken pre.subn() (and pre.sub())
Fredrik Lundh <fredrik@pythonware.com>
parents:
23075
diff
changeset
|
375 except (error, TypeError): |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
376 m = MatchObject(self, source, 0, end, []) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
377 repl = lambda m, repl=repl, expand=pcre_expand: expand(m, repl) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
378 else: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
379 m = None |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
380 else: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
381 m = MatchObject(self, source, 0, end, []) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
382 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
383 match = self.code.match |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
384 append = results.append |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
385 while n < count and pos <= end: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
386 regs = match(source, pos, end, 0) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
387 if not regs: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
388 break |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
389 self._num_regs = len(regs) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
390 i, j = regs[0] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
391 if i == j == lastmatch: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
392 # Empty match adjacent to previous match |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
393 pos = pos + 1 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
394 append(source[lastmatch:pos]) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
395 continue |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
396 if pos < i: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
397 append(source[pos:i]) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
398 if m: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
399 m.pos = pos |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
400 m.regs = regs |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
401 append(repl(m)) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
402 else: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
403 append(repl) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
404 pos = lastmatch = j |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
405 if i == j: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
406 # Last match was empty; don't try here again |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
407 pos = pos + 1 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
408 append(source[lastmatch:pos]) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
409 n = n + 1 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
410 append(source[pos:]) |
|
16499
58de2829cfdd
String method conversion.
Eric S. Raymond <esr@thyrsus.com>
parents:
15870
diff
changeset
|
411 return (''.join(results), n) |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
412 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
413 def split(self, source, maxsplit=0): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
414 """split(source[, maxsplit=0]) -> list of strings |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
415 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
416 Split string by the occurrences of the compiled pattern. If |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
417 capturing parentheses are used in the pattern, then the text |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
418 of all groups in the pattern are also returned as part of the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
419 resulting list. If maxsplit is nonzero, at most maxsplit |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
420 splits occur, and the remainder of the string is returned as |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
421 the final element of the list. |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
422 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
423 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
424 if maxsplit < 0: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
425 raise error, "negative split count" |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
426 if maxsplit == 0: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
427 maxsplit = sys.maxint |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
428 n = 0 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
429 pos = 0 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
430 lastmatch = 0 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
431 results = [] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
432 end = len(source) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
433 match = self.code.match |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
434 append = results.append |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
435 while n < maxsplit: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
436 regs = match(source, pos, end, 0) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
437 if not regs: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
438 break |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
439 i, j = regs[0] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
440 if i == j: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
441 # Empty match |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
442 if pos >= end: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
443 break |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
444 pos = pos+1 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
445 continue |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
446 append(source[lastmatch:i]) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
447 rest = regs[1:] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
448 if rest: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
449 for a, b in rest: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
450 if a == -1 or b == -1: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
451 group = None |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
452 else: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
453 group = source[a:b] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
454 append(group) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
455 pos = lastmatch = j |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
456 n = n + 1 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
457 append(source[lastmatch:]) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
458 return results |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
459 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
460 def findall(self, source): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
461 """findall(source) -> list |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
462 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
463 Return a list of all non-overlapping matches of the compiled |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
464 pattern in string. If one or more groups are present in the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
465 pattern, return a list of groups; this will be a list of |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
466 tuples if the pattern has more than one group. Empty matches |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
467 are included in the result. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
468 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
469 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
470 pos = 0 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
471 end = len(source) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
472 results = [] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
473 match = self.code.match |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
474 append = results.append |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
475 while pos <= end: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
476 regs = match(source, pos, end, 0) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
477 if not regs: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
478 break |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
479 i, j = regs[0] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
480 rest = regs[1:] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
481 if not rest: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
482 gr = source[i:j] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
483 elif len(rest) == 1: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
484 a, b = rest[0] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
485 gr = source[a:b] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
486 else: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
487 gr = [] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
488 for (a, b) in rest: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
489 gr.append(source[a:b]) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
490 gr = tuple(gr) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
491 append(gr) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
492 pos = max(j, pos+1) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
493 return results |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
494 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
495 # The following 3 functions were contributed by Mike Fletcher, and |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
496 # allow pickling and unpickling of RegexObject instances. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
497 def __getinitargs__(self): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
498 return (None,None,None,None) # any 4 elements, to work around |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
499 # problems with the |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
500 # pickle/cPickle modules not yet |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
501 # ignoring the __init__ function |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
502 def __getstate__(self): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
503 return self.pattern, self.flags, self.groupindex |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
504 def __setstate__(self, statetuple): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
505 self.pattern = statetuple[0] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
506 self.flags = statetuple[1] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
507 self.groupindex = statetuple[2] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
508 self.code = apply(pcre_compile, statetuple) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
509 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
510 class _Dummy: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
511 # Dummy class used by _subn_string(). Has 'group' to avoid core dump. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
512 group = None |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
513 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
514 class MatchObject: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
515 """Holds a compiled regular expression pattern. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
516 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
517 Methods: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
518 start Return the index of the start of a matched substring. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
519 end Return the index of the end of a matched substring. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
520 span Return a tuple of (start, end) of a matched substring. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
521 groups Return a tuple of all the subgroups of the match. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
522 group Return one or more subgroups of the match. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
523 groupdict Return a dictionary of all the named subgroups of the match. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
524 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
525 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
526 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
527 def __init__(self, re, string, pos, endpos, regs): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
528 self.re = re |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
529 self.string = string |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
530 self.pos = pos |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
531 self.endpos = endpos |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
532 self.regs = regs |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
533 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
534 def start(self, g = 0): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
535 """start([group=0]) -> int or None |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
536 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
537 Return the index of the start of the substring matched by |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
538 group; group defaults to zero (meaning the whole matched |
|
14396
a10afb3ad275
Correct docstring about return value when group didn't participate in match
Andrew M. Kuchling <amk@amk.ca>
parents:
13620
diff
changeset
|
539 substring). Return -1 if group exists but did not contribute |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
540 to the match. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
541 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
542 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
543 if type(g) == type(''): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
544 try: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
545 g = self.re.groupindex[g] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
546 except (KeyError, TypeError): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
547 raise IndexError, 'group %s is undefined' % `g` |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
548 return self.regs[g][0] |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
549 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
550 def end(self, g = 0): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
551 """end([group=0]) -> int or None |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
552 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
553 Return the indices of the end of the substring matched by |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
554 group; group defaults to zero (meaning the whole matched |
|
14396
a10afb3ad275
Correct docstring about return value when group didn't participate in match
Andrew M. Kuchling <amk@amk.ca>
parents:
13620
diff
changeset
|
555 substring). Return -1 if group exists but did not contribute |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
556 to the match. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
557 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
558 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
559 if type(g) == type(''): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
560 try: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
561 g = self.re.groupindex[g] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
562 except (KeyError, TypeError): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
563 raise IndexError, 'group %s is undefined' % `g` |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
564 return self.regs[g][1] |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
565 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
566 def span(self, g = 0): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
567 """span([group=0]) -> tuple |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
568 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
569 Return the 2-tuple (m.start(group), m.end(group)). Note that |
|
14396
a10afb3ad275
Correct docstring about return value when group didn't participate in match
Andrew M. Kuchling <amk@amk.ca>
parents:
13620
diff
changeset
|
570 if group did not contribute to the match, this is (-1, |
|
a10afb3ad275
Correct docstring about return value when group didn't participate in match
Andrew M. Kuchling <amk@amk.ca>
parents:
13620
diff
changeset
|
571 -1). Group defaults to zero (meaning the whole matched |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
572 substring). |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
573 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
574 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
575 if type(g) == type(''): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
576 try: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
577 g = self.re.groupindex[g] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
578 except (KeyError, TypeError): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
579 raise IndexError, 'group %s is undefined' % `g` |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
580 return self.regs[g] |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
581 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
582 def groups(self, default=None): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
583 """groups([default=None]) -> tuple |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
584 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
585 Return a tuple containing all the subgroups of the match, from |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
586 1 up to however many groups are in the pattern. The default |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
587 argument is used for groups that did not participate in the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
588 match. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
589 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
590 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
591 result = [] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
592 for g in range(1, self.re._num_regs): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
593 a, b = self.regs[g] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
594 if a == -1 or b == -1: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
595 result.append(default) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
596 else: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
597 result.append(self.string[a:b]) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
598 return tuple(result) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
599 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
600 def group(self, *groups): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
601 """group([group1, group2, ...]) -> string or tuple |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
602 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
603 Return one or more subgroups of the match. If there is a |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
604 single argument, the result is a single string; if there are |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
605 multiple arguments, the result is a tuple with one item per |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
606 argument. Without arguments, group1 defaults to zero (i.e. the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
607 whole match is returned). If a groupN argument is zero, the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
608 corresponding return value is the entire matching string; if |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
609 it is in the inclusive range [1..99], it is the string |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
610 matching the the corresponding parenthesized group. If a group |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
611 number is negative or larger than the number of groups defined |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
612 in the pattern, an IndexError exception is raised. If a group |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
613 is contained in a part of the pattern that did not match, the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
614 corresponding result is None. If a group is contained in a |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
615 part of the pattern that matched multiple times, the last |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
616 match is returned. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
617 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
618 If the regular expression uses the (?P<name>...) syntax, the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
619 groupN arguments may also be strings identifying groups by |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
620 their group name. If a string argument is not used as a group |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
621 name in the pattern, an IndexError exception is raised. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
622 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
623 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
624 if len(groups) == 0: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
625 groups = (0,) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
626 result = [] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
627 for g in groups: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
628 if type(g) == type(''): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
629 try: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
630 g = self.re.groupindex[g] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
631 except (KeyError, TypeError): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
632 raise IndexError, 'group %s is undefined' % `g` |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
633 if g >= len(self.regs): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
634 raise IndexError, 'group %s is undefined' % `g` |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
635 a, b = self.regs[g] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
636 if a == -1 or b == -1: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
637 result.append(None) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
638 else: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
639 result.append(self.string[a:b]) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
640 if len(result) > 1: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
641 return tuple(result) |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
642 elif len(result) == 1: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
643 return result[0] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
644 else: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
645 return () |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
646 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
647 def groupdict(self, default=None): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
648 """groupdict([default=None]) -> dictionary |
|
15870
010d03853546
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
14396
diff
changeset
|
649 |
|
13229
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
650 Return a dictionary containing all the named subgroups of the |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
651 match, keyed by the subgroup name. The default argument is |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
652 used for groups that did not participate in the match. |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
653 |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
654 """ |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
655 dict = {} |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
656 for name, index in self.re.groupindex.items(): |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
657 a, b = self.regs[index] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
658 if a == -1 or b == -1: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
659 dict[name] = default |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
660 else: |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
661 dict[name] = self.string[a:b] |
|
344ab348f1e9
Switch to sre for regular expression matching (the new mini-re module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
662 return dict |
