backreferences

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Amy Dillavou

    #1

    backreferences

    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

  • Iain King

    #2
    Re: backreferences


    Amy Dillavou wrote:[color=blue]
    > 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[/color]

    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:




    Chapter 3 covers REs:


    [color=blue]
    >From what I remember, in python you can use numbered backreferences (up[/color]
    to 99), or named ones.

    Iain

    Comment

    • George Sakkis

      #3
      Re: backreferences


      "Amy Dillavou" <gs2luv@line72. net> wrote in message
      news:mailman.10 84.1127915597.5 09.python-list@python.org ...[color=blue]
      > 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[/color]

      renDate = re.compile(some _regex)
      match = renDate.search( input)
      if match and str(lastmodDate ) < match.group(1):
      do_something()


      HTH,
      George


      Comment

      • Amy Dillavou

        #4
        Re: backreferences

        George and Iain -
        Thanks for your help!!! It worked for me, and that book seems to be
        really useful =)
        A.D

        On Wed, 2005-09-28 at 11:16 -0400, George Sakkis wrote:[color=blue]
        > "Amy Dillavou" <gs2luv@line72. net> wrote in message
        > news:mailman.10 84.1127915597.5 09.python-list@python.org ...[color=green]
        > > 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[/color]
        >
        > renDate = re.compile(some _regex)
        > match = renDate.search( input)
        > if match and str(lastmodDate ) < match.group(1):
        > do_something()
        >
        >
        > HTH,
        > George
        >
        >[/color]

        Comment

        • Peter

          #5
          Re: backreferences

          Iain King wrote:
          [color=blue]
          >Amy Dillavou wrote:
          >
          >[color=green]
          >>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.searc h(l)
          >>if(exist.sear ch(l) and str(lastmodDate ) < \1): #i need help here with \1
          >>
          >>Thanks in advance
          >>A.D
          >>
          >>[/color]
          >
          >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
          >[color=green]
          >>From what I remember, in python you can use numbered backreferences (up[/color]
          >to 99), or named ones.
          >
          >Iain
          >
          >
          >[/color]
          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<t ext></B> | <\1 style="\2">\3<\ 1>""",
          """<H1 style="color: #000000">abc</H1>"""
          )

          HTH,
          Peter

          Comment

          Working...