Hi everybody,
I want to get the start and end of all the patterns mattched in regex. I know I can get it with start() and end() fn of matched objects. But re.search() return the match object of first matching regex in the string. I want all match objects in that string
Here is the string :
tmplstr = """
${name}
${list: parentlst}
an element ${elem: parentlst}
${/list: parentlst}
${list: childlst}
an element ${elem: childlst}
${/list: childlst}
"""
Here is the regex script:
# Compile List Patterns
# Start of List
lstpattern_st = r"(\$\{list: ([a-z]*[0-9 ]*)\})"
lstpat_st = re.compile(lstpattern_st)
# End of List
lstpattern_end = r"(\$\{/list: ([a-z]*[0-9 ]*)\})"
lstpat_e = re.compile(lstpattern_end, re.I)
matchgrp_st = lstpat_st.search(tmplstr)
strt = matchgrp_st.start()
print strt
matchgrp_e = lstpat_e.search(tmplstr)
end = matchgrp_e.end()
print end
print self.tmplstr[strt:end]
Note: There are no spaces in $list after colon. I had given it to avoid smilies only
I want all the start and end indices of the string but re.search()
returns the first regex met in the string. re.match()
also wont work because it search in the begining.
Can anyone help me in getting the start and end indices of all. Or can provide any other solution instead of this?