On 16/05/11 17:25, Tracubik wrote:
pls help me fixing this:
import re
s = "linka la baba"
re_s = re.compile(r'(link|l)a' , re.IGNORECASE)
print re_s.findall(s)
output:
['link', 'l']
why?
i want my re_s to find linka and la, he just find link and l and forget
about the ending a.
The round brackets define a 'capturing group'. I.e. when you do findall
it returns those elements in the string that match what's inside the
brackets. If you want to get linka and la, you need something like this:
>>> re_s = re.compile(r'((link|l)a)' , re.IGNORECASE)
>>> print re_s.findall(s)
[('linka', 'link'), ('la', 'l')]
Then just look at the first element in each of the tuples in the array
(which matches the outside set of brackets).
see:
http://www.regular-expressions.info/python.html
--
http://mail.python.org/mailman/listinfo/python-list