__dict__ of object, Was: Regular Expression IGNORECASE different for findall and split?

Chris c at cdot.de
Tue Sep 6 16:55:37 EDT 2005


Peter Otten wrote:
> Chris wrote:
> 
> 
>> >>> re.split('x', '1x2X3', re.I)
>>['1', '2X3']
> 
> 
> 
>>I expected ['1', '2', '3'] but in this case re.I bahaves exactly as not
>>present at all...
> 
>  
> 
>>Is that an expected behaviour or a fault?
> 
> 
> This is expected:
> 
> 
>>>>help(re.split)
> 
> Help on function split in module sre:
> 
> split(pattern, string, maxsplit=0)
>     Split the source string by the occurrences of the pattern,
>     returning a list containing the resulting substrings.
> 
> You are setting maxsplit to
> 
> 
>>>>re.I
> 
> 2
> 
> Use re.compile() to get the desired behaviour:
> 
> 
>>>>re.compile("x", re.I).split("1x2X3")
> 
> ['1', '2', '3']
> 
> Peter

thanks, I should read the docs but

but more of a basic question following, I was doing the following before:

	method = 'split' # came from somewhere else of course
	result = re.__dict__[method].(REGEX, TXT)

precompiling the regex

	r = compile(REGEX)

does give an regex object which has the needed methods

	print dir(r)
	['__copy__', '__deepcopy__', 'findall', 'finditer', 'match', 'scanner', 
'search', 'split', 'sub', 'subn']
	
but how do I evaluate them without explicitly calling them?

	result = r.__???MAGIC???__[method](TXT)

obviously I am not a Python pro ;)

thanks
chris



More information about the Python-list mailing list