On 18 říj, 21:20, MRAB <pyt...@mrabarnett.plus.com> wrote: > Necronymouse wrote: > > Hello i ´ve got a little problem: I ´ve this text: > >http://openpaste.org/en/secret/17343/pass-pythonand I need to parse > > it. So i wrote this: > > > patternNode = re.compile(""" > > # Node (\w*).* > > (.*)""", re.MULTILINE) > > > with open("test.msg", "r") as file: > > testData = file.read() > > > for Node in re.findall(patternNode, testData): > > print "Node:", Node[0] > > print Node > > <<< > > > but it prints only one line from text. If i am using re.DOTALL it > > wouldn´t print anything.. So don´t you know whre the problem is? > > I assume you mean that it's giving you only the first line of text of > each node. > > "(.*)" will capture a single (and possibly empty) line of text. > > "(.+\n)" will capture a single non-empty line of text ending with a > newline. > > I think you want to capture multiple non-empty lines, each line ending > with a newline: > > patternNode = re.compile(""" > # Node (\w*).* > ((?:.+\n)*)""", re.MULTILINE) > > > Sorry for my English - it´s not my native language... > > It's better than my Czech/Slovak (depending on what Google says)! :-)
Yeah this works ( ((?:.+\r\n)*) ), thanks.. It´s czech.. -- http://mail.python.org/mailman/listinfo/python-list