regex syntax

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Andreas Volz

    #1

    regex syntax

    Hi,

    ich kann nicht gut regex, aber für das nötigste reicht es eigentlich.
    Irgendwie komm ich aber mit der Syntax der re.* Befehle in Python nicht
    klar Vielleicht kann mir das an diesem Beispiel jemand zeigen:

    string = "bild.jpg"

    ich möchte jetzt einfach wissen ob in dem string ein ".jpg" vorkommt
    oder nicht und dann eine Entscheidung treffen. Ich hab mir schon
    überlegt einfach die letzten viel Stellen des strings "per Hand" auf die
    Zeichenfolge zu vergleichen und so regex zu umgehen. Aber ich muss es
    irgendwann ja doch mal nutzen ;-)

    Gruß
    Andreas
  • and-google@doxdesk.com

    #2
    Re: regex syntax

    Andreas Volz <usenet-spam-t...@brachttal. net> schrieb:
    [color=blue]
    > Ich hab mir schon überlegt einfach die letzten viel Stellen des
    > strings "per Hand" auf die Zeichenfolge zu vergleichen und so
    > regex zu umgehen. Aber ich muss es irgendwann ja doch mal nutzen[/color]

    "Muss"? stimme nicht zu! Regexps sind ja fuer begrenzte Zwecke eine
    gute Loesung, aber kein Basisteil der Programmierung. Bei diesem
    Beispiel waere:
    [color=blue][color=green][color=darkred]
    >>> filename.endswi th('.jpg')[/color][/color][/color]

    viel besser als das vergleichbare Regexp:
    [color=blue][color=green][color=darkred]
    >>> re.match('.*\.j pg$', filename)[/color][/color][/color]
    --
    Andrew Clover
    mailto:and@doxd esk.com


    Comment

    • James Stroud

      #3
      Re: regex syntax

      Ich kann nicht spricht Deutch, aber:

      import re

      regex = re.compile(r'(. *)(\.jpg)$')

      m = regex.match("bi ld.jpg")

      g = m.groups()

      print g[0]
      print g[1]


      Auf wiedersehen!
      James

      On Monday 06 December 2004 04:03 pm, Andreas Volz wrote:[color=blue]
      > Hi,
      >
      > ich kann nicht gut regex, aber für das nötigste reicht es eigentlich.
      > Irgendwie komm ich aber mit der Syntax der re.* Befehle in Python nicht
      > klar Vielleicht kann mir das an diesem Beispiel jemand zeigen:
      >
      > string = "bild.jpg"
      >
      > ich möchte jetzt einfach wissen ob in dem string ein ".jpg" vorkommt
      > oder nicht und dann eine Entscheidung treffen. Ich hab mir schon
      > überlegt einfach die letzten viel Stellen des strings "per Hand" auf die
      > Zeichenfolge zu vergleichen und so regex zu umgehen. Aber ich muss es
      > irgendwann ja doch mal nutzen ;-)
      >
      > Gruß
      > Andreas[/color]

      --
      James Stroud, Ph.D.
      UCLA-DOE Institute for Genomics and Proteomics
      611 Charles E. Young Dr. S.
      MBI 205, UCLA 951570
      Los Angeles CA 90095-1570

      Comment

      • Daniel Dittmar

        #4
        Re: regex syntax

        Andreas Volz wrote:[color=blue]
        > string = "bild.jpg"
        >
        > ich möchte jetzt einfach wissen ob in dem string ein ".jpg" vorkommt
        > oder nicht und dann eine Entscheidung treffen. Ich hab mir schon
        > überlegt einfach die letzten viel Stellen des strings "per Hand" auf die
        > Zeichenfolge zu vergleichen und so regex zu umgehen. Aber ich muss es
        > irgendwann ja doch mal nutzen ;-)[/color]

        1.) If someone else should read your code:

        import os

        def hasExt (filename, expectedExtensi on):
        actualExtension = os.path.splitex t (filename) [1]
        return actualExtension == expectedExtensi on

        if hasExt ("build.jpg" , ".jpg"):
        ...

        2.) Debugging regular expression:

        Just remove meaningful chunks from the end of the expression until you
        have an expected match. Then add them again one by one, most problems
        will become quite obvious. And how do I wish there was a debug mode that
        would make that somewhat automatic.

        Daniel

        Comment

        • Andreas Volz

          #5
          Re: regex syntax

          Am 6 Dec 2004 17:43:21 -0800 schrieb and-google@doxdesk. com:
          [color=blue]
          > viel besser als das vergleichbare Regexp:
          >[color=green][color=darkred]
          > >>> re.match('.*\.j pg$', filename)[/color][/color][/color]

          Ok,now I've choosen this regex:
          [color=blue]
          > '.*\.(?i)jpe?g'[/color]

          to get .jpg .JPG .jpeg .JPEG

          seems to work. Is this correct?

          regards
          Andreas

          Comment

          Working...