The Fulch wrote: > Hi, > > Given two strings I need to determine weather or not one of the > strings is a subset of the other string. In at least one of the > strings there is a star "*" which can be any character or a null there > is a maximum of one star per string. > > So basically I want the function to return true if you try to match > st*r and star > st*r and str > sta*rshine and star > st* and star > st*r and stststar > t*r and s*ar I'm not sure how this is a match, can you clarify? > > > I tried making a function which splits the input by "*" but don't > really know how to continue after that. I have been trying to use reg > ex, but with little success.
If just one string has a match, you can change the * to .* and get a regular expression to search for in the other string. In [1]: import re In [2]: s1='st*r' In [3]: s2='star' In [4]: regex = s1.replace('*', '.*') If the search succeeds, it returns a match object: In [5]: re.search(regex, s2) Out[5]: <_sre.SRE_Match object at 0x00E3F6B0> If the search fails, it returns None: In [6]: re.search(regex, 'foo') In [7]: Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor