re.sub

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Freitag 12. September 2008, 10:12

Hallo,

ich will mit re.sub in einem String nur das erste Element ersetzen.

zB:

Code: Alles auswählen

url = http://www.bsp.com/www.php

regexp_www = re.compile('www[\.]', re.I)
if re.match(regexp_www, url[7:11]):
    re.sub(regexp_www, '', url)
Damit will ich bei vorhandenem www das www entfernen, eben nur das vorangestellte und nicht ein evtl. in der restl. url Vorkommendes... Bei diesem Beispiel erhalte ich ja http://bsp.com/php und nicht http://bsp.com/www.php

Danke!
MfG
lunar

Freitag 12. September 2008, 10:35

Du solltest dir die Doku zum re-Modul nochmal durchlesen und lernen, wie man in Strings escaped!

Code: Alles auswählen

import re
from urlparse import urlsplit, urlunsplit

url = urlsplit('http://www.example.com/www.php')
netloc = re.sub(r'^www\.', '', url.netloc, re.I)
print urlunsplit((url.scheme, netloc, url.url, url.query, url.fragment))
BlackJack

Freitag 12. September 2008, 10:41

Das versagt natürlich bei solchen URLs: 'http://name:secret@www.bsp.com/www.php'. Aber irgendwas ist ja immer. :-)
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Freitag 12. September 2008, 13:27

danke für die Hilfe...

eine Frage: der Unterschied zwischen netloc und hostname bei urlparse...
Konnte bisher keinen Unterschied feststellen...
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Samstag 13. September 2008, 08:33

SchneiderWeisse hat geschrieben:ich will mit re.sub in einem String nur das erste Element ersetzen.
Der dritte (optionale) Parameter von `sub` definiert, wie oft ersetzt wird.

Stefan
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Samstag 13. September 2008, 11:25

SchneiderWeisse hat geschrieben:eine Frage: der Unterschied zwischen netloc und hostname bei urlparse...
Konnte bisher keinen Unterschied feststellen...
Ich vermute, dass netloc "user:password@hostname" umfasst.
Antworten