Efficient String Lookup?

Chris S. chrisks at NOSPAM.udel.edu
Sun Oct 17 03:14:49 EDT 2004


Chris S. wrote:

> Andrew Dalke wrote:
> 
>> Here's the output I got when I ran it
>>
>>
>> abadb?  We've got a 'Antimatter containment field breach' warning!
>> abcdef?  We've got a 'Reactor meltdown imminent' warning!
>> zxc?  That's okay.
>> abcq?  We've got a 'Antimatter containment field breach' warning!
>> b1234f?  We've got a 'Coffee too strong' warning!
> 
> 
> Actually, I've noticed some strange behavior. It seems to match more 
> than one character per wild card. For instance, your code matches 
> 'abaxile', 'abaze', and 'abbacomes' to the pattern 'ab##'. I'm not an 
> expert with rex, but your expression looks correct. What could be 
> causing this?

Spoke too soon. I seems all you needed was to change:

full_regexp = "|".join(as_regexps) + "$"

to:

full_regexp = "$|".join(as_regexps) + "$"

However, I noticed rex still doesn't return multiple matches. For 
instance, matching 'abc' to the given the patterns '#bc', 'a#c', and 
'ab#', your code only returns a match to the first pattern '#bc'. Is 
this standard behavior or is it possible to change this?



More information about the Python-list mailing list