469,336 Members | 5,552 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,336 developers. It's quick & easy.

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
Jul 18 '05 #1
4 2630
Andreas Volz <usenet-spam-t...@brachttal.net> schrieb:
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


"Muss"? stimme nicht zu! Regexps sind ja fuer begrenzte Zwecke eine
gute Loesung, aber kein Basisteil der Programmierung. Bei diesem
Beispiel waere:
filename.endswith('.jpg')
viel besser als das vergleichbare Regexp:
re.match('.*\.jpg$', filename)

--
Andrew Clover
mailto:an*@doxdesk.com
http://www.doxdesk.com/

Jul 18 '05 #2
Ich kann nicht spricht Deutch, aber:

import re

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

m = regex.match("bild.jpg")

g = m.groups()

print g[0]
print g[1]
Auf wiedersehen!
James

On Monday 06 December 2004 04:03 pm, Andreas Volz wrote:
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


--
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
http://www.jamesstroud.com/
Jul 18 '05 #3
Andreas Volz wrote:
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 ;-)


1.) If someone else should read your code:

import os

def hasExt (filename, expectedExtension):
actualExtension = os.path.splitext (filename) [1]
return actualExtension == expectedExtension

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
Jul 18 '05 #4
Am 6 Dec 2004 17:43:21 -0800 schrieb an********@doxdesk.com:
viel besser als das vergleichbare Regexp:
re.match('.*\.jpg$', filename)

Ok,now I've choosen this regex:
'.*\.(?i)jpe?g'


to get .jpg .JPG .jpeg .JPEG

seems to work. Is this correct?

regards
Andreas
Jul 18 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

8 posts views Thread by Johnny | last post: by
3 posts views Thread by Stephan Bour | last post: by
17 posts views Thread by clintonG | last post: by
3 posts views Thread by jg | last post: by
3 posts views Thread by gisleyt | last post: by
2 posts views Thread by rockstar_ | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by Marylou17 | last post: by
1 post views Thread by Marylou17 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.