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

Reply via email to