hi, all. I need to process a file with the following format: $ cat sample [(some text)2.3(more text)4.5(more text here)] [(aa bb ccc)-1.2(kdk)12.0(xxxyyy)] [(xxx)11.0(bbb\))8.9(end here)] .......
my goal here is for each line, extract every '(.*)' (including the round brackets, put them in a list, and extract every float on the same line and put them in a list.. here is my code: p = re.compile(r'\[.*\]$') num = re.compile(r'[-\d]+[.\d]*') brac = re.compile(r'\(.*?\)') for line in ifp: if p.match(line): x = num.findall(line) y = brac.findall(line) print x, y len(x), len(y) Now, this works for most of the lines. however, I'm having problems with lines such as line 3 above (in the sample file). here, (bbb\)) contains an escaped ')' and the re I use will match it (because of the non-greedy '?'). But I want this to be ignored since it's escaped. is there a such thing as local greediness?? Can anyone suggest a way to deal with this here.. thanks. -- http://mail.python.org/mailman/listinfo/python-list