s1 = "I am an american" s2 = "I am american an "for s in [s1, s2]: print re.findall(" (am|an) ", s) # Results: # ['am'] # ['am', 'an'] ------- I want the results to be the same for each string. What am I doing wrong?
In your first case, the regexp is consuming the " am " (four characters, two of which are spaces), leaving no leading space for the second one to find. You might try using \b as a word-boundary:
re.findall(r"\b(am|an)\b", s) -tkc -- http://mail.python.org/mailman/listinfo/python-list
