Lance Hoffmeyer wrote: > I have the following table and I am trying to match percentage the 2nd > column on the 2nd Tiger line (9.0). > > I have tried both of the following. I expected both to match but neither > did? Is there a modifier > I am missing? What changes do I need to make these match? I need to keep > the structure of the regex the same. > > TIGER.append(re.search("TIGER\s{10}.*?(?:(\d{1,3}\.\d)\s+){2}", > target_table).group(1)) > TIGER.append(re.search("^TIGER.*?(?:(\d{1,3}\.\d)\s+){2}", > target_table).group(1))
You can try the re.DOTALL flag (prepend the regex string with "(?s)"), but I'd go with something really simple: instream = iter(target_table.splitlines()) # or: instream = open(datafile) for line in instream: if line.startswith("TIGER"): value = instream.next().split()[1] # or ...[0]? they are both '9.0' TIGER.append(value) break Peter -- http://mail.python.org/mailman/listinfo/python-list