I can't seem to find a way to extract all comments like in following example.
>>> import re
>>> string = '''
... <!-- one
... -->
... <!-- two -- -- -->
... <!-- three -->
... '''
>>> m = re.findall ( '<!--([^\(-->)]+)-->', string, re.MULTILINE)
>>> m
[' one \n', ' three ']
block with two -- --
is not matched most likely because of bad regex. Can someone please point me in right direction how to extract matches between two strings.
Hi I've tested what you guys suggested in comments.... here is working solution with little upgrade.
>>> m = re.findall ( '<!--(.*?)-->', string, re.MULTILINE)
>>> m
[' two -- -- ', ' three ']
>>> m = re.findall ( '<!--(.*\n?)-->', string, re.MULTILINE)
>>> m
[' one \n', ' two -- -- ', ' three ']
thanks!
re.findall('<!--(.*?)-->', string, re.DOTALL)
should do. You don't need^\(-->)
here, because the question mark makes it non-greedy. – Studniam = re.findall('[\w]+', string, re.MULTILINE)
? Also, string is a really bad name for a, um, string. – Elly