@@ -159,15 +159,15 @@ def setup(sre_compiler, error_class, flags_table):
159
159
160
160
class SRE_Match ():
161
161
def __init__ (self , pattern , pos , endpos , result , input_str , compiled_regex ):
162
- self .result = result
163
- self .compiled_regex = compiled_regex
164
- self .re = pattern
165
- self .pos = pos
166
- self .endpos = endpos
167
- self .input_str = input_str
162
+ self .__result = result
163
+ self .__compiled_regex = compiled_regex
164
+ self .__re = pattern
165
+ self .__pos = pos
166
+ self .__endpos = endpos
167
+ self .__input_str = input_str
168
168
169
169
def end (self , groupnum = 0 ):
170
- return self .result .getEnd (groupnum )
170
+ return self .__result .getEnd (groupnum )
171
171
172
172
def group (self , * args ):
173
173
if not args :
@@ -182,7 +182,7 @@ def group(self, *args):
182
182
183
183
def groups (self , default = None ):
184
184
lst = []
185
- for arg in range (1 , self .compiled_regex .groupCount ):
185
+ for arg in range (1 , self .__compiled_regex .groupCount ):
186
186
lst .append (self .__group (arg , default ))
187
187
return tuple (lst )
188
188
@@ -192,46 +192,58 @@ def __getitem__(self, item):
192
192
def __groupidx (self , idx ):
193
193
try :
194
194
if isinstance (idx , str ):
195
- return self .compiled_regex .groups [idx ]
196
- elif 0 <= idx < self .compiled_regex .groupCount :
195
+ return self .__compiled_regex .groups [idx ]
196
+ elif 0 <= idx < self .__compiled_regex .groupCount :
197
197
return idx
198
198
except Exception :
199
199
pass
200
200
raise IndexError ("no such group" )
201
201
202
202
def __group (self , idx , default = None ):
203
203
idxarg = self .__groupidx (idx )
204
- start = self .result .getStart (idxarg )
204
+ start = self .__result .getStart (idxarg )
205
205
if start < 0 :
206
206
return default
207
207
else :
208
- return self .input_str [start :self .result .getEnd (idxarg )]
208
+ return self .__input_str [start :self .__result .getEnd (idxarg )]
209
209
210
210
def groupdict (self , default = None ):
211
- groups = self .compiled_regex .groups
211
+ groups = self .__compiled_regex .groups
212
212
if groups :
213
213
return {name : self .__group (name , default ) for name in dir (groups )}
214
214
return {}
215
215
216
216
def span (self , groupnum = 0 ):
217
217
idxarg = self .__groupidx (groupnum )
218
- return (self .result .getStart (idxarg ), self .result .getEnd (idxarg ))
218
+ return (self .__result .getStart (idxarg ), self .__result .getEnd (idxarg ))
219
219
220
220
def start (self , groupnum = 0 ):
221
221
idxarg = self .__groupidx (groupnum )
222
- return self .result .getStart (idxarg )
222
+ return self .__result .getStart (idxarg )
223
223
224
224
@property
225
225
def string (self ):
226
- return self .input_str
226
+ return self .__input_str
227
+
228
+ @property
229
+ def re (self ):
230
+ return self .__re
231
+
232
+ @property
233
+ def pos (self ):
234
+ return self .__pos
235
+
236
+ @property
237
+ def endpos (self ):
238
+ return self .__endpos
227
239
228
240
@property
229
241
def lastgroup (self ):
230
- return self .compiled_regex .groupCount
242
+ return self .__compiled_regex .groupCount
231
243
232
244
@property
233
245
def lastindex (self ):
234
- return self .result .getEnd (0 )
246
+ return self .__result .getEnd (0 )
235
247
236
248
def __repr__ (self ):
237
249
return "<re.Match object; span=%r, match=%r>" % (self .span (), self .group ())
0 commit comments