Iain King wrote: >Amy Dillavou wrote: > > >>Can someone help me with understanding how python uses backreferences? >>I need to remember the item that was last matched by the re engine but i >>cant seem to understand anything that I find on backreferences. if I >>want to access the last match do i use \number or is there something >>else i have to do? >> >>heres part of my code: >>renDate = re.compile("$((\d){4}-(\d){2}-(\d){2}))") >>renDate.search(l) >>if(exist.search(l) and str(lastmodDate) < \1): #i need help here with \1 >> >>Thanks in advance >>A.D >> >> > >I haven't had to use backreferences yet, so I don't know offhand how to >go about it. What I do know is that this online book is very useful: > >http://gnosis.cx/TPiP/ > > >Chapter 3 covers REs: > >http://gnosis.cx/TPiP/chap3.txt > >>From what I remember, in python you can use numbered backreferences (up >to 99), or named ones. > >Iain > > > This shows both named backreferences and indexed. In both the replacement and the searching.
(?P<name>data) sets the value of a named backreference named name to the value of data (but can only be used in the pattern). \NUMBER gets the value of a backreference by its index (can be used in the pattern or the replacement). (?P=name) gets the value of a named backreference (but only in the pattern). \g<name> gets the value of a named backreference (but only in the replacement). Example: re.sub(r"""<(?P<tag>H[1-5]) style="(.*)">(?P<text>.*)</(?P=tag)>""", r"""<B style="\2">\g<text></B> | <\1 style="\2">\3<\1>""", """<H1 style="color: #000000">abc</H1>""" ) HTH, Peter -- http://mail.python.org/mailman/listinfo/python-list