Hello, I'm trying to analyze some autolisp code with python. In the file to be analyzed there are many functions. Each function begins with a "defun" statement. And before that, there may or may not have comment line(s), which begins with ";". My goal is to export each function into separate files, with comments, if there is any. Below is the code that I'm struggling with:
[code] path = "C:\\AutoCAD\\LSP\\Sub.lsp" string = file(path, 'r').read() import re pat = "\\;+.+\\n\\(DEFUN" p = re.compile(pat,re.I) iterator = p.finditer(string) spans = [match.span() for match in iterator] for i in range(min(15, len(spans))): print string[spans[i][0]:spans[i][1]] [/code] The code above runs fine. But it only takes care of the situation in which there is exactly one comment line above the "defun" statement. How do I repeat the sub-pattern "\\;+.+\\n" here? For example if I want to repeat this pattern 0 to 10 times, I know "\\;+.+\\n{0:10}\\(DEFUN" does not work. But don't know where to put "{0:10}". As a work around, I tried to use pat = "|".join(["\\;+.+\\n"*i+ "\\(DEFUN" for i in range(11)]), and it turned out to be very slow. Any help? Thank you. Kelie -- http://mail.python.org/mailman/listinfo/python-list